Archive for 6 月 22nd, 2008

WordPressのURLをカッコ良くする

Posted in IT, WordPress on 6 月 22nd, 2008 by ishikawa – Be the first to comment

前回の記事でアーカイブページのアドレスを短くしましたが、http://yourhost.example.com/?p=1 の ? 以降はクエリーといって、WEBアプリケーションにオプション値を与えて挙動を変更する為の記法です。

オプションを与えて挙動を変更するという事は、オプション次第でページの内容が変わってしまうという事であり、検索エンジンに好まれません(実際の所、オプションの数が少ない場合は特に問題にはなりませんが)。見た目にも格好が悪く余り好まれませんが、WordPress ではこれをすっきりとした奇麗なURLに変更する為の機能が標準で用意されています。

ちなみに、この機能は mod_rewrite というWEBサーバの機能を拡張するモジュールが導入されていないと使えない機能ですが、xreaを初めとして、ロリポップやさくらインターネットのレンタルサーバでは標準で対応しており、特に意識する事なく使えます。(上記以外のレンタルサーバの場合は mod_rewrite が使えるかどうか確認してください)

URLはパーマリンクという言葉もある様に、コロコロ変更する訳にはいきません。なので、この機能の導入はWordPressを導入したら出来るだけすみやかに設定するべきです。(もしくは設定せずにしばらく使っているのなら、もうそのままこの機能は使わないほうが良いかもしれません)

では、早速設定しましょう。

まず、設定タブを開き、パーマリンク設定を開きます。一般的な設定の中から好きなURL形式を選んで、変更を保存ボタンを押します。設定の流れとしては以上で終了です。

ここで重要なのはやはりどのURL形式を選択するかという事です。最も短いアドレスを望む場合は、カスタム構造のフォームに直接 /%post_id% と入力します。この場合は、http://yourhost.example.com/3 といった、記事番号だけのパスで、アクセスできます。

SEOの事を考えるとURLにキーワードが入っているというのは強力なので、/%postname%/ というのも捨てがたいです。しかし、日本語のタイトルはURLエンコード(%XX形式)される上に、UTF-8のマルチバイト文字は3バイトで表現される為、日本語で10文字のタイトルの場合10*3*3で90文字にも膨れあがってしまいます。

最近のモダンなブラウザはアドレスバーやステータスバーの表示をきちんと日本語で表示してくれたりしますが、メールにURLを貼付ける時や、ソーシャルブックマークへの登録等、やたらと長いアドレスは何かと面倒や見苦しさがつきまといます。

一応回避策もあって、通常postnameはエントリーのタイトルを元に生成されますが、個別に変更できるので英語の名前をつけ変える事も出来ます。ただし、これは大変面倒ですしうっかり変更を忘れて後から変更するとなると、URLの変更という事になります。記事ごとにpostnameを人間が設定するという運用は現実的には避けた方が良いでしょう。

また、%postname% を利用する場合、%postname% のみでは不可解なアドレス解釈で正しいURLとしてアクセスが出来ない事があるので、保険として %post_id% と併用する様にしましょう。

例えば、/%post_id%/%postname%/ とすれば、http://example.com/3/日本語 というURLが http://example.com/3/日本語 といったように英数字部分までしかURLとして解釈されず中途半端なクリッカブルリンクになったとしても、http://example.com/3/ だけで正しい記事にアクセスする事が出来ます。

それらを踏まえて、当サイトでは無難に /archives/%post_id% にしています。

追記:以下の様な話があります。欠番はどうでもいいのですが、データをリストアするとパーマリンクが変更になる様で、これは重大ですね。というわけで、リンク先のように年月日+タイトルに私も変更しました。

欠番や番号が飛んだ状態で WordPress 本体でエクスポートしてインポートすると投稿 ID がずれる(つまりパーマリンクが変わってしまう)
WordPress をインストールしたら最初にしておくこと – わーどぷれすっ!

URL形式が決まったら保存をしておしまいといきたい所ですが、mod_rewrite機能を使っているため、サーバにアドレス書き換えのルールを教えてあげる必要があります。 index.php を置いたフォルダに WordPress からの書き込みが可能な場合は WordPress が自動でその設定も行ってくれますが、多くの環境では書き込み可能にはなっていないでしょうから手動で設定する事になります。

という訳で、手動で行う場合ですが、mod_rewrite 用の書式は WordPress が用意してくれています。パーマリンク設定の一番下のテキストエリアのテキストがそれです。テキストエリア内の文字列を全てコピーし、テキストファイルに貼付けて、htaccess.htaccessという名前でローカルの適当な場所(例えばデスクトップ等)に保存してください。

そのファイルを index.php と同じフォルダにアップロードして、ファイル名を .htaccess に変更します。ファイル名が.から始まるファイルは不可視ファイルとして扱われるので、FTPクライアントの設定によっては.htaccessに変更したとたん、あたかも消えてしまったかの様に感じる事があるかもしれませんが大丈夫です。消えてしまった場合はFTPクライアントの設定で、不可視ファイルを表示するとか.で始まるファイルを表示すると言った様な趣旨の項目を変更してみてください。

なお、アップロード完了後はデスクトップのhtaccess.htaccessは削除して構いません。

以上で設定完了です。ブログのトップページにアクセスして、そこから個別記事に移動してみてください。アドレスが指定した形式でリンクされているのが確認できると思います。

WordPressのアーカイブページのアドレスも変更する

Posted in IT, WordPress on 6 月 22nd, 2008 by ishikawa – Be the first to comment

前回は、WordPressのトップページのアドレスを変更しましたが、個別ページは相変わらず http://yourhost.example.com/wordpress/?p=1 になっていますね。

今回は、これを http://yourhost.example.com/?p=1 という形式に変更してみましょう。この変更は設定画面からの変更のみで非常に簡単に行えます。

まず管理ページにログインし、ダッシュボードが表示されたら設定タブを開きます。すると、一般設定がアクティブになっているはずです。

そのページの ブログのアドレスhttp://yourhost.example.com に変更して(もちろん自分のアドレスに変更してください)変更を保存ボタンを押して保存します。

以上で http://yourhost.example.com/?p=1 形式でアクセスできるようになっているはずです。確認してみてください。

WordPressのトップページのアドレスを変更する

Posted in IT, WordPress on 6 月 22nd, 2008 by ishikawa – 4 Comments

インストールを wordpress フォルダに行った為、URLが http://yourhost.example.com/wordpress/ になっています。他のコンテンツがある場合等はこれでも構わないでしょうが、ブログがメインなサイトの場合は http://yourhost.example.com/ にアクセスしたらブログが表示されて欲しいでしょう。

そういった場合は wordpress フォルダではなく、DocumentRoot 直下にインストールするしか無いのでしょうか?

わざとらしい前振りですが、その必要はありません。早速 http://yourhost.example.com/ にアクセスした場合にブログが表示される様に変更してみましょう。

まずはブログをインストールしたフォルダにある index.php をダウンロードして編集します。もちろん、インストール用のファイルが残っている場合はそれを編集しても構いません。ダウンロードする手間が省けます(たったの1ファイルなので些細な手間ですが)。

この index.php ファイルは以下の様な内容になっていると思います。

1
2
3
4
5
<?php
/* Short and sweet */
define('WP_USE_THEMES', true);
require('./wp-blog-header.php');
?>

この 4行目を以下の様に変更します。

1
2
3
4
5
<?php
/* Short and sweet */
define('WP_USE_THEMES', true);
require('./wordpress/wp-blog-header.php');
?>

例に沿って wordpress としていますが、blog というフォルダにインストールした場合は ./blog/wp-blog-header.php になります。

変更を保存後、このindex.phpファイルをトップページにしたい場所にアップロードします。http://yourhost.example.com/ にしたい場合はDocumentRoot直下(例えばpublic_htmlやhtdocs)です。

アップロードしたら早速 http://yourhost.example.com/ にアクセして確認してみましょう。 きちんと表示されていたら成功です。

ここまで作業を終えると、どうせなら初めから DocumentRoot に WordPress をインストールすればいいのにと言った疑問が沸いてくるかもしれません。何故 DocumentRoot にインストールしないかというと、ルートフォルダは何かのファイルを置く場合に必ず起点になりますから、どうしても WordPress 以外のファイルも置く事になりがちです。

そういったファイル混在状態でWordPressのバージョンアップが必要になった場合、誤って WordPress 以外のファイルを削除したり、上書きしてしまったり、または既に必要なくなったふるい WordPress のファイルが残り続けたりする原因となります。

その点、wordpressフォルダにインストールしておけば、古いwordpressフォルダをリネームしてバックアップしつつ、新しいwordpressフォルダをアップロードするだけで済みます。

そういったわけで、可能な限り上位のフォルダを散らかさない様にしましょう。