WordPress と静的ページを同居させていると何が不自由って WordPress の PHP ファイルがルートディレクトリにどさっと現れること。 HTML ファイルと PHP ファイルがごちゃごちゃで、アップデートの時に必要なファイルまで消しそうで未だに 1 度もアップデートできていない。
そんな中、 index.php だけ残してその他のファイルを好きなディレクトリに変更できるというので、実験的に設置している WordPress にて試してみました。
本サイトも WP のコアファイルを移動を完了しました。 Firefox にてレイアウトが崩れることがありますが、いったん終了し、キャッシュを空にしていただくと正常に表示されます。ご迷惑おかけします。
方法を簡単に記述。(※注意: URL は別サイトでのものになります。)
1) 「設定」→「一般設定」にて「 WordPress のアドレス (URL) 」を移動するディレクトリ名に変更
今回は、「 aaa 」という名前のディレクトリに WordPress のコアファイルを入れるので下記のように変更。
「 http://1010uzu.com/wp/ 」→「 http://1010uzu.com/wp/aaa 」
2) 変更を保存ボタンをクリック。エラーが出るけれど気にせず次のステップへ
3) 「 index.php 」「 .htaccess 」以外の WordPress 関連ファイルをディレクトリ「 aaa 」に移動。
4) 「 index.php 」を下記のように変更。 index.php からの相対パスに変更してやります。
「 require( ‘ ./wp-blog-header.php ’ ); 」→「 require( ‘ ./aaa/wp-blog-header.php ’ ); 」
5) パーマリンクを設定している場合は、管理画面の「設定」→「パーマリンクの設定」にて「変更を保存」をクリックして更新します。
せっかく記述したけど公式のドキュメントがあったので、追加リンクしておきます。
→ Giving WordPress Its Own Directory
これで、 http://1010uzu.com/wp/ を開けば OK なはずなのだけれど、なぜかレイアウトがぐちゃぐちゃに。これは、 Firefox がキャッシュを強く保持するために起きた現象で、 Safari から見たら大丈夫でした。 Firefox もキャッシュを消したらきちんと表示された、と思いきや、投稿した画像がちゃんと表示されない。 WordPress の画像 URL って絶対パスなんですよね。
そこで、レンタルサーバーの phpMyAdmin から画像パスを置換してやることにした。見よう見まねで、叩いた SQL は以下の通り。
UPDATE `wp_posts` SET `post_content` =REPLACE (`post_content`,`http://1010uzu.com/wp/wp-content/uploads/`,`http://1010uzu.com/wp/aaa/wp-content/uploads/`);
wp-posts テーブルでアップロードした画像なども管理していることが判明。項目 guid にもその情報が入り、管理画面のメディアライブラリのサムネイル画像を表示するのに使われている模様です。ですので、 phpMyAdmin にて、下記の SQL も実行した方がベターなようです。
UPDATE `wp_posts` SET `guid` =REPLACE (`guid`,`http://1010uzu.com/wp/wp-content/uploads/`,`http://1010uzu.com/wp/aaa/wp-content/uploads/`);
これでめでたく WordPress の PHP ファイルのほとんどを別のフォルダに移動することができました。
さて、バックアップを取ってこのサイトの変更に取りかかるか。
ちなみにこの作業を行っても WordPress で吐き出されるディレクトリ構成は変わりません。
*参考書籍*