WordPressパーマリンク設定の途中変更ではまる
- (2010-03-18 10:45:42)
WordPressは本来ブログ用のプラットフォームというイメージがあるが、メインコンテンツ公開用のプラットフォームとして活用している会社さんも多かろう。どんな使い方にせよ、WordPressのポテンシャルは高い。
私の場合は静的なページを制作し、そのサブコンテンツ用プロットフォームとして活用している。悲しいかな、現状、使いこなせていない。
昨日はWordPressパーマリンク設定を途中で変更して記事が飛んで、今までの記事が全部見えなくなるトラブルにはまる。
WordPressはURLのフォーマットが変更可能な優れ物
(※でも、そもそも最初に設定したら変更しないこと)
WordPressでは記事URLのお尻はデフォルトで下記のよるになる:
/?p=25
/?p=26
/?p=27
意味は知らない。おそらく「?」はプログラム起動、「p」は「ページ」か「パラメーター」で、「指定数値のページを開け」みたいな意味ではなかろうか。まったく問題ないが、WordPressは凄いことにこの表記方法を変更できるように設計されている。
SEO対策と思われる。とはいえ今時の検索エンジンがこの程度の記号を嫌がるはずがないのだが、私たち人間には「/?p=」ではやはり読みにくく記憶しにくい。そこで下記のフォーマットに変更した。
/archives/25
/archives/26
/archives/27
フォーマット変更は2クリック程度で完了する。楽勝で「凄いぞ!WordPress」と喜ぶのも束の間、全記事が「Error Not Found」状態。パーマリンク設定を戻せば見えるので焦る必要はなかったが、意味が分からない。
何か起きているのかさっぱりわからない。こういうときはデータベースの中身を見る。
phpMyAdminで関係ありそうなテーブルを探す
phpMyAdminでMySQLの管理画面にログイン。
phpMyAdminログイン->「ホーム」->「データベース」->「テーブル」
WordPressのテーブル構成は下記の通り:
wp_commentmeta
wp_comments
wp_links
wp_options
wp_postmeta
wp_posts
wp_terms
wp_term_relationships
wp_term_taxonomy
wp_usermeta
wp_users
順々にテーブルを開いていくと投稿された各記事は「wp_posts」に格納されていた。
同時に驚くべき発見をした。同じ記事が何度も格納されている。記事の更新は古い記事を保存しながらなされるようで更新回数分(いあ、それ以上かもしれない。定期的な自動保存か)の記事があった。
私的には余計な無用・不要のシステムであるが、古い記事を残したい人やグループやチームなど、複数人間で記事を編集・更新する場合はこのような履歴保持は必要だろう。
更新履歴の保存を無効にする設定があればやりたいが、今回は調査せず。
wp_posts内のデータを直接編集
公開用オリジナル記事には「parent」というフラグが立つことで公開用記事と履歴保存用記事とを判断している模様。
この分ではデータベースはすぐに重くなる気がする。反射的にすべての更新履歴をphpMyAdminの管理画面から削除した。近い中にオプティマイゼーション(最適化)の方法を調べたい。
phpMyAdminの管理画面で気に入ったのが、記事を直接編集できること。
WordPressの編集画面はレスポンスも速いとはいえず、いたく扱いにくいく。最近は秀丸で書いてペーストするだけになっていたが、phpMyAdminのテーブル「表示」から直接打ち込むと速い。とはいえ毎回phpMyAdminにアクセスする手間が大変か。
予想外にphpMyAdminからいろいろできることを知って運が良かった。
パーマリンク設定変更で行方不明になった記事のアドレスをすべて手作業で、/archives/形式に修正し、すべて復活。
かろうじて事なきを得た。