Webサイトのリニューアル中に、クライアント確認用のWordPressをサブディレクトリに作ることがあります。
たとえば、既存サイトはルートで公開したまま、リニューアル後のWordPressだけを /wp に置いて確認する形です。
/… 既存サイトのファイル/wp… リニューアル後のWordPress
この構成は、同じサーバー上で動作確認できるので便利です。
ただし、本番公開時の作業を軽く見ると危ない。
URL設定、index.php、.htaccess、既存ファイルの退避が絡むため、作業前にバックアップと戻し方を決めておくべきです。
この記事では、WordPress本体を /wp に置いたまま、サイトの表示URLをルートにする手順を整理します。
もともとは2016年に書いたリリースメモですが、現在は公式ドキュメントの考え方に合わせて、注意点を厚めに書き直しています。
まず確認すること
作業前に、最低限ここは確認します。
どれかが曖昧なままなら、本番で触る前に止まった方がよいです。
- WordPress本体のURLが
https://example.com/wpで正しく動いている - 公開後の表示URLを
https://example.comにする方針で合っている - DB、アップロードファイル、テーマ、プラグイン、既存静的ファイルのバックアップがある
- ベーシック認証やメンテナンス制御を外すタイミングが決まっている
- 失敗したときに、既存サイトへ戻す手順がある
公式ドキュメントでは、WordPress本体の場所とサイト表示URLを分ける手順が説明されています。
Giving WordPress Its Own Directory | Developer.WordPress.org
WordPressアドレスとサイトアドレスを分ける
管理画面の「設定」→「一般」には、URL設定が2つあります。
- WordPress アドレス(URL) … WordPress本体を置いている場所
- サイトアドレス(URL) … 訪問者に見せるサイトURL
今回の例なら、WordPress本体は /wp に残します。
そのため、考え方は以下です。
WordPress アドレス(URL): https://example.com/wp サイトアドレス(URL): https://example.com
この変更を保存した直後は、一時的に表示が崩れたり、ルート側の準備ができるまで正しく見えなかったりします。
慌てて追加変更を重ねず、次の index.php と .htaccess の作業までセットで進めます。
index.phpと.htaccessをルートへコピーする
次に、/wp 内にある index.php と .htaccess を、ルートディレクトリへコピーします。
ここで大事なのは、移動ではなくコピーです。
WordPress本体は /wp に残します。
.htaccess は環境によって見えないことがあります。
FTPやファイルマネージャーで隠しファイルを表示する設定が必要です。
nginxやIISの場合は、.htaccess 前提ではないので、サーバー設定に合わせて確認します。
ルート側のindex.phpを書き換える
ルートにコピーした index.php を開き、wp-blog-header.php の読み込み先を /wp に向けます。
通常は、以下のような記述があります。
require __DIR__ . '/wp-blog-header.php';
これを、/wp 内の wp-blog-header.php を読むように変更します。
require __DIR__ . '/wp/wp-blog-header.php';
古いコード例では dirname( __FILE__ ) を使っていることもあります。
その場合も考え方は同じで、読み込み先を /wp/wp-blog-header.php に変えます。
既存ファイルは削除ではなく退避から
旧サイトのHTMLや画像がルートに残っている場合、公開切り替え時に整理が必要です。
ただし、いきなり削除しない方がよいです。
まずは別ディレクトリへ退避するか、サーバー外にバックアップして、戻せる状態を作ります。
特にクライアントワークでは、公開直後に「一部ページだけ旧サイトに戻したい」「画像だけ参照していた」ということもあります。
不要に見えるファイルでも、公開後すぐに消すより、一定期間は退避しておく方が安全です。
公開後に確認すること
- トップページが
https://example.comで表示される - 投稿、固定ページ、カテゴリーページが表示される
- 管理画面にログインできる
- 画像、CSS、JavaScriptが正しく読み込まれる
- パーマリンク設定を保存し直して、必要なrewriteルールが反映される
- ベーシック認証や確認用のnoindexが残っていない
- Search Consoleやアクセス解析側のURL設定を確認する
この作業は、うまくいけば短時間で終わります。
ただし、短時間で終わることと、雑に進めてよいことは別です。
本番URL、既存ファイル、検索流入、フォーム、ログインまわりが絡むため、作業前後の確認項目を決めて進める方がよいです。
まとめ:サブディレクトリ運用は便利だが、公開作業は慎重に
WordPressを /wp に置いたまま、サイトをルートで表示する構成は今でも使えます。
WordPress本体の置き場所と、サイトとして見せるURLを分けられるからです。
ただ、公開作業ではURL設定、index.php、.htaccess、既存ファイルの扱いを一度に触ります。
5分で終わることもありますが、5分で済ませるつもりで入るより、戻せる状態を作ってから進める方が安全です。
WordPress管理画面側の小さな調整なら、WordPress管理画面に独自CSS・JavaScriptを読み込む方法 にまとめています。
公開後の検索やカテゴリ導線を整えるなら、wp_dropdown_categoriesでカテゴリー絞り込み検索を作る方法 も近い話です。