CPIでWordPress

クライアントのCPIサーバーにWordPressをインストールする。たしかここは、PHPに対する扱いが面倒だったような気がしたので、.htaccessファイルが自動で追加されるのを期待して、コントロールパネルからインストールしてみる。インストール自体はうまくいったが随分と古いバージョンだったので、上書きで2.7Jをインストール。すると、文字化け。軽くググってみたら、CPIでWordPressをやるのは結構厄介?

あと、utf-8にしたphpMyAdminでテーブルを削除できないのだが、ja-eucに変更してからだと削除できる。

ここを参考にphp.iniを作成する。コントロールパネルの【お客様情報】から、【プログラムのパスとサーバの情報】の下の方にある使用するPHPと同じバージョンのphp.ini情報をコピーして、下記の記述を修正する。

mbstring.internal_encoding = utf-8
mbstring.encoding_translation = Off
mbstring.http_input = auto
mbstring.detect_order = auto

ァイル名を【php.ini】として保存して任意のディレクトリにアップロードする。(secureなディレクトリが良)

次に、php.iniの設定を反映させるため、php.ini の設置場所を指定した一行を記載した.htaccessを作成する。これにより、下位ディレクトリ全体にPHPの独自設定を反映させる。

suPHP_ConfigPath /usr/home/(ユーザーID)/secure/(ディレクトリ)/

これで、utf-8のPHPが指定したディレクトリで動くようになり、wordpressの文字化けも解消した。phpMyAdmin が ja-euc のままだったが、文字化けにならず、念のため utf-8 にした後も問題なく動作した。

カテゴリー表示のカスタマイズ

WordPressのデフォルトでは、カテゴリーメニューをクリックすると、そのカテゴリーの記事がズラっと表示され、一定数を超えると複数ページになる。これだと、必要な記事も探しづらいので、カテゴリー内のメニューを作ることにする。

まず、プラグインの Custom posts per page (現在は配布していないようです。追記:09.12.26) をインストールする。このプラグインは、1ページに表示される投稿数を[‘home’][‘day’][‘month’][‘search’][‘year’] [‘author’][‘category’]など項目別に指定することができる。これを用いて、カテゴリーメニューを、1ページで全部表示するように設定する。

次に、category.php(または archive.php など)をカスタマイズする。テーマによっては、category.phpが存在しない場合は、index.php などをベースにして、新しくcategory.phpを作成すれば、カテゴリーをクリックしたときに表示するページになる。

カテゴリーを選ぶと、以下の順番でテンプレートを読み込んでいくので、個別に指定をすれば、カテゴリーの中でも表示を異なったものにすることができる。

  1. category-x.php (← “x” 部分はカテゴリ ID)
  2. category.php
  3. archive.php
  4. index.php

今回は、category.phpを新規に作成する。ループ内にタイトルと日付をリストで表示させた。

<ul>
<li>
<a href=”<?php the_permalink() ?>” rel=”bookmark” title=”Permanent Link to <?php the_title(); ?>”><?php the_title(); ?></a>
<br /><?php the_date(”); ?>
</li>
</ul>

カテゴリーのアクセス制限 [ Allow Categories ]

WordPressのカテゴリーに対してアクセス制限するためのプラグイン。

プラグインフォルダに入れて有効化した後、管理画面の「ツール>Allow Categories」で制御したいカテゴリーの指定をする。制御する対象を「(Public)」「(Logged In)」「admin」の他、個別のユーザー毎に指定することができる。

制御しないカテゴリーに対してチェックするのだが、通常は制御するカテゴリーの方が少ないだろうことを考えると、制御したいカテゴリーに対してチェックする方がわかりやすいし手間が省けると思う。

Copyrightの年号更新を自動化する

今までは、DreamWeaverのテンプレートなどを利用して年号を更新していたが、複数のサイトを管理していると、年に1度のこととはいえ、それもだんだん面倒に‥‥納品した後、管理を任せていただいているサイトばかりなわけでもないわけで。
それと今年、200ページを超えるサイトの書き換えを一気にDreamWeaverで行い、ちょっと怖い思いをしたということもあり、JavaScriptでやることにする。(DreamWeaverでの更新は無事完了。失敗した訳ではないので念のため)

<head>内
<script type=”text/javascript” language=”JavaScript”>
<!–
function year() {
var data = new Date();
var now_year = data.getFullYear();
document.write(now_year);
}
–>
</script>

<body>内
Copyright &copy;
<script type=”text/javascript” language=”JavaScript”>
<–
year();
–>
</script>
LEVEL-K.JP All Rights Reserved.

本当は、Copyrightって宣言しなくても守られるものなので、表示する必要はないのですけどね。そうはいいつつ、あって当たり前みたいになっているので、一応サイトを制作するときには必ず載せていますが。
それと、JavaScriptを切っている人は当然見えません。