yusk -ユースク-

  • WordPress
  • Twitter
  • RSS
  • Facebook

201108-11

パーマリンクのカスタム構造でハマった時の色々まとめ

wordpress

WordPressを導入すると最初に設定とかすると思うんですが、皆さんパーマリンクが日本語とかにならないよう、適正化をすると思います。

カスタム構造で好きなようにカスタマイズする時、上手くいかないことがあります。

先日そんな状態に陥ったので、幾つかの手段を記載します。

構成タグの組合せ

permalink

通常ここから設定・変更します。
さて、このカスタム構造ですが、何を入れるのでしょうか。

WordPress Codex パーマリンクの使い方
を参照すると、用途に応じた構成タグの一覧が掲載されています。

構成タグ一覧

  • %year% 投稿年
  • %monthnum% 投稿月
  • %day% 投稿日
  • %hour% 投稿時
  • %minute% 投稿分
  • %second% 投稿秒
  • %postname% 投稿スラッグ。
  • %post_id% 投稿固有の ID 番号
  • %category% カテゴリースラッグ
  • %tag% タグスラッグ
  • %author% 著者名

要は、パーマリンクをこれらに書き換える処理をしてくれるので、自分で使いたいように組み合わせることができるのです。

では一体何をどのように組み合わせるのか。
使う頻度が高い組合せだと、以下が妥当かもしれません。

  • /%category%/%postname%.html
    例:http://www.yusk.org/days/web/may-like_001.html (このサイトの設定)
  • /%category%/%year%%monthnum%%day%%hour%%minute%.html
    例:http://www.yusk.org/days/201108052230.html
  • /%category%/%post_id%.html
    例:http://www.yusk.org/days/70.html

ただし、%postname%を使った場合には、記事ごとにパーマリンクのスラッグを半角英数字で決めてあげないと、記事タイトルそのままの日本語とかになっちゃいます。
SEO的に何が良いかというと、%postname%使ったほうが良いのかもしれません。ほんの些細なことですが。

ただ、%postname%使った場合の変換は、お客様に納品してお客様ご自身が更新していく場合にはやらないほうが良い場合もあります。
記事を更新する度に指定しなくてはいけないため、うっかり忘れてしまったり億劫になると途端に日本語のURLの出来上がりです^^;

なので僕の場合は相手のパソコン慣れの度合いを加味して、大抵は自動的にidでパーマリンクが決まるようにするか、日付にするかどちらかにしてます。お客様ってそこまでこだわらない場合が多いので、予めこういう箇所も気を配ってあげたいところですよね。

カスタム構造が上手くいかない?404エラー?

実はカスタム構造を利用するとたまにパーマリンクが正常なのにも関わらず、ページ遷移ができない・ページ表示されない(もしくは404エラー)になることがあります。
URLは合っているのに、何故?

これは3通り考えられます。

Rewriteが使えない

実はカスタム構造のパーマリンクは、.設定した際に.htaccessが出力されます。

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

通常はこの.htaccessの中の「mod_rewrite」でURLの書き換えモジュールを指定し、「RewriteEngine On」で呼び出し可能にしています。

ですが、このRewriteが使えないサーバも中にはありまして、そんなサーバだとカスタム構造自体を使えません。サーバの管理者に問合せて設定をしてもらうか、カスタム構造自体を諦めましょう^^; よっぽどでない限り大丈夫だと思いますが。
(なんかそれでも可能にするプラグインがあるようなのをどこかで見ましたが失念・・・試してないので真偽は不明)

.htaccessが生成されてない

カスタム構造を設定した際に自動的にWordPressのインストールディレクトリに.htaccessが生成されるはずですが、生成されない場合があります。

この場合はパーミッションが生成不可能になってないか確認しましょう。権限が無い場合はもちろんファイルは生成されません。
この一時だけなので、一度パーミッションを777にしてから生成するのもアリです。

それ以外(不明)

上記2つの原因じゃない場合、.htaccessが生成されてサーバもRewrite使えるのにカスタム構造が上手く機能せず、URLがリンク切れ状態になる、稀にこんな時もあります。

これは一旦カスタム構造以外の選択にして保存し、別ページに遷移させた後でまた戻り、再度カスタム構造を指定し直せば直る場合があります。
同じく下のオプションの「カテゴリーベース」の入力欄に何か単語を入れて保存、ページを切り替えて再度戻り、カテゴリーベース内の単語を消して保存をし直すことでも解消したりします。

バグ?のような気もする謎の現象ですが、発生条件などはわかりません。

コメントはありません。

コメントはありません。

トラックバック一覧

トラックバックURL

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img localsrc="" alt="">