WordPress をサイトの一部のみで利用する
サイト制作時に「サイトの大部分は制作業者が作成・管理するが、新着情報だけユーザー側で作成・管理したい」というような要望を受けることって、比較的多いと思います。そのような場合に新着情報の管理を WordPress で行う場合の設定について割とハマったのでまとめておきます。
ディレクトリ構成は、/wp/ 以下に WordPress の構成ファイルを設置し、以下のように WordPress を設定します。
あとは WordPress 以外の部分を作っていくだけですが、ポイントは /.htaccess です。普通に WordPress をインストールした場合には、.htaccess によってリクエストは index.php に集められますが、WordPress の index.php を /wp/index.php に置き、それとは別の /index.php を置く場合には、.htaccess を書き換える必要があります。
<IfModule mod_rewrite.c>
RewriteEngine On
# プレビューのときは index.php を経由せずに /wp/index.php に飛ばす
RewriteCond %{QUERY_STRING} preview=true
RewriteRule ^index\.php$ /wp/index.php [L]
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/index.php [L]
</IfModule>
基本的にはリクエストを /wp/index.php に集めるようにすればよいのですが、下書きのプレビューだけ URL が http://example.com/?page_id=1&preview=true の形式になっているため、別に設定してあげないとプレビューが表示されず、/index.php が表示されてしまいます。
WordPress は設定を変更すると /.htaccess を自動的に書き換えてくれますが、上記のように .htaccess を書き換える必要があり、これを WordPress が書き換えてしまうと元に戻されてしまうため、パーミッションを 444 などにし、勝手に書き換えられないようにしておくことをおすすめします。
ディスカッション
コメント一覧
まだ、コメントがありません