こんにちは、Ryohei(@ityryohei)です!

本記事では、WordPressでテーマのディレクトリ階層(サーバー上の保存場所)を変更する方法をご紹介しています。

テーマのディレクトリをWordPressの外に移動したいんだけど、良い方法ないかな?

上記の疑問にお答えします。

では、解説していきます。

結論

WordPressでは、テーマはwp-contentの中に含める必要があります。そのため、テーマのディレクトリ階層を変更したい場合はwp-contentの配下のファイルをすべて移動する必要があります。

wp-contentの直下には、下記のようなディレクトリとファイルが設置されています。

wp-content
 ├ languages
 ├ plugins
 ├ themes
 ├ upgrade
 └ index.php

テーマのディレクトリ階層を変更する場合は、これらの配置場所も変更する必要があるので、ご注意ください。

※別ディレクトリのテーマを追加する方法もあります。プラグイン等でテーマを追加する場合は下記をご検討ください。

register_theme_directory() - 関数リファレンス

wp-contentのディレクトリを変更する

実際にwp-contentのディレクトリを変更してみます。WordPress本体と同じ階層にwp-conentを移動します。ディレクトリ名も任意に指定することができるので、ここではwp-contentcontentというディレクトリ名にリネームしています。

ディレクトリ構造(移動後)

html
  ├ content(wp-contentをリネーム)
  │  ├ languages
  │  ├ plugins
  │  ├ themes
  │  ├ upgrade
  │  └ index.php
  └ wp
    ├ wp-admin
    ├ wp-includes
    ├ wp-config.php
    └ ...etc

ディレクトリの移動とリネームが完了しましたら、WordPress本体の直下にあるwp-config.phpに下記を追記します。WP_DEBUGの下辺りに追記いただければと思います。

wp-config.php

//content(旧wp-content)のフルパス
define('WP_CONTENT_DIR',  '/example/path/to/www/html/content'); 
//contentを配置したURL
define('WP_CONTENT_URL',  'https://' . $_SERVER['SERVER_NAME'] . '/content');
define('WP_PLUGIN_DIR',   WP_CONTENT_DIR . '/plugins');
define('WPMU_PLUGIN_DIR', WP_CONTENT_DIR . '/plugins');
define('WP_PLUGIN_URL',   WP_CONTENT_URL . '/plugins');
define('WPMU_PLUGIN_URL', WP_CONTENT_URL . '/plugins');
define('PLUGINDIR',   WP_CONTENT_URL . '/plugins');

追記したwp-config.phpを反映し、ページを再読み込みするとwp-contentのディレクトリ階層が変更されていることがご確認いただけます。

本記事では、要所を抜粋して解説しておりますが、より詳しい内容につきましては下記のドキュメントを参考にしていただければと思います。

wp-config.php の編集

最後に

WordPressは世界中で絶大なシェアを誇るオープンソースのCMSです。導入しているサイトが多いため、その分悪意を持って攻撃するクラッカーの標的となりやすいのも事実です。

wp-config.phpを非公開ディレクトリに設置したり、ログインにBasic認証を設けたり、パスワードの他にリキャプチャを導入したりできることはあると思いますので、ぜひ調査しながら実施してみてくださいね。

以上、WordPressでテーマのディレクトリの場所(階層)を変更する方法のご紹介でした!

この記事を書いた人

Ryohei

Webエンジニア / ブロガー

福岡のWeb制作会社に務めるWebエンジニアです。エンジニア歴は10年程で、好きな言語はPHPとJavaScriptです。本サイトは私がインプットしたWebに関する知識を整理し、共有することを目的に2015年から運営しています。Webに関するご相談があれば気軽にお問い合わせください。