Not quick a Nine

納得いかない!!

24  09 2008

パーマリンクの設定を変えるとMore以降が表示されない件

遅まきながらWordpressのバージョンを2.5から2.6.2に上げました。
バージョンアップをする際に、毎度毎度手動でプログラムを直しているところがあるんですが、どこかにメモっておかないと、忘れてしまいそうなので、自分用にメモ(^。^)

このブログはSeesaaからMovableType、そして、現在のWordpressと乗り換えてきたわけですが、MovableTypeからWordpressに切り替えた際、それまでのパーマリンクの設定にすると、どうしても各エントリのMore以降が表示されないという現象が発生して、しばらく悩んでいました。

当ブログのパーマリンクはこのようになっています。
/%year%/%monthnum%/%day%-%hour%%minute%.php

で、色々と調べた結果、Wordpressでは
「時間をパーマリンク内で使うときには、必ず、時分秒を含まなければならない」
という決まりになっているらしく、これを逸脱する場合には、正常動作を保証しないらしい。

ただ、長年同じパーマリンクでやってきたものを、今になって変更するのも、あちこちにリンクが張られている関係上嫌なので、Wordpress側のプログラムを変更して対応しました。

毎回アップデートの度に、この部分を修正する必要がありますが、背に腹は代えられません。
興味のある方は続きからどうぞ~~

変更したのは、wp-include/query.phpの545行付近

PHP:
  1. } elseif ( ('' !== $qv['hour']) && ('' !== $qv['minute']) &&('' !== $qv['second']) && ('' != $qv['year']) && ('' != $qv['monthnum']) && ('' != $qv['day']) ) {
  2.             // If year, month, day, hour, minute, and second are set, a single
  3.             // post is being queried.

ここから、秒に関する判定を削除します。

PHP:
  1. } elseif ( ('' !== $qv['hour']) && ('' !== $qv['minute']) && ('' != $qv['year']) && ('' != $qv['monthnum']) && ('' != $qv['day']) ) {
  2.             // If year, month, day, hour, minute, and second are set, a single
  3.             // post is being queried.

これを保存して、元の場所に上書き保存すればOK。
不安ならば、元のquery.phpはquery.bakなどにリネームして置くのが良いと思います。

以上、良いWordpressライフを(^_^)ノ""""

人気度:
3%

Trackback URL

Leave a Reply

690