WordPressのフォルダ・ファイル構成を徹底解説!「触っていい場所・ダメな場所」はここだ

WordPressサイト構築

WordPress(ワードプレス)で自社サイトやオウンドメディアを構築・運営する際、多くの起業家や担当者は管理画面(ダッシュボード)の操作だけで完結させがちです。

しかし、一歩進んだカスタマイズ、万が一のトラブル対応、あるいは効率的なバックアップ戦略を考える上で、WordPressがどのようなフォルダとファイルで動いているのかという「構造」を理解することは、非常に重要です。

「起業のためのシステム化」を目指すなら、まずは自社サイトの「設計図」とも言えるフォルダ構成を知ることから始めましょう。

この記事では、WordPressの複雑なフォルダ構成を「何のための場所なのか?」という視点で分かりやすく整理し、**「あなたが安全に触れる場所」「絶対に触ってはいけない場所」**を明確に解説します。


 

 

WordPressの全体像:3つの重要フォルダとルートファイル

 

3つの重要フォルダ

WordPressをサーバーにインストールすると、FTPソフト(ファイル転送ソフト)などで中身を見ると、大きく分けて以下の3つのフォルダと、wp-から始まる多くのファイル群で構成されていることがわかります。

  1. wp-admin フォルダ
  2. wp-content フォルダ
  3. wp-includes フォルダ
  4. wp-config.php などのルートファイル群
フォルダ名 概要(何が入っているか?) 触ってOK?
wp-admin 管理画面(ダッシュボード)に関するファイル × 厳禁
wp-content あなたのデータ(テーマ、プラグイン、画像) ◎ ここだけ
wp-includes WordPress本体の機能(関数・プログラム) × 厳禁

この表の通り、あなたがサイト運営で唯一触る(カスタマイズやバックアップで意識する)必要があるのは wp-content フォルダだけです。


 

ルートファイル

以下にルート内のファイル内容について簡単に説明します。

WordPress のファイル
ファイル 説明
.htaccess WordPress インストール後に生成される .htaccess ファイル(※)
index.php サイトにアクセスがあった場合に、最初に読み込まれるファイル(インデックスファイル)
license.txt ライセンスに関するテキストファイル(サーバーにアップロードする必要なし)
readme.html WordPress のインストールや基本的な情報を記載したファイル(サーバーにアップロードする必要なし)
wp-activate.php ユーザーアカウントに関するファイル
wp-blog-header.php WordPress 環境に関連するファイルをロードするファイル
wp-comments-post.php コメント投稿に関するファイル
wp-config.php 設定ファイル
wp-config-sample.php インストール時にこのファイルを元に設定ファイルを作成することができるサンプルファイル。インストール後は wp-config.php という設定ファイルが生成される
wp-cron.php 擬似 cron ジョブ(ある種のスケジューリング機能)を担うファイル
wp-links-opml.php リンクの XML 出力に関するファイル
wp-load.php WordPress の動作や起動に関連するファイルをロードするファイル
wp-login.php 管理画面のログインに関するファイル
wp-mail.php メールによるブログ投稿用ファイル
wp-settings.php WordPress の基本設定に関するファイル
wp-signup.php ブログ名やユーザー名などの設定に関するファイル
wp-trackback.php トラックバックと Ping 送信用ファイル
xmlrpc.php XML-RPC 通信に関するファイル

(※).htaccess ファイルは WordPress のパーマリンク設定時に自動的に生成され、テーマディレクトリに配置されます。WordPress のパーマリンクはこの .htaccess ファイルと Apache の mod_rewrite と言うモジュールによって制御されています。


 

 

【最重要】私たちが触る唯一の場所「wp-content」フォルダ

 

wp-content フォルダは、あなたのサイト独自のデータをすべて格納する「物置」のような場所です。WordPress本体がアップデートされても、このフォルダの中身は上書きされません。

サイトのバックアップを取る際は、後述する「wp-config.php」と、この「wp-content」フォルダを丸ごと保存しておくのが基本となります。

wp-content の中には、主に以下の重要なフォルダが含まれています。

  • plugins(プラグイン):あなたがインストールした全てのプラグインが、それぞれ個別のフォルダとしてここに格納されています。プラグインが原因でサイトが真っ白になった時など、FTPソフトからこのフォルダ内の該当プラグイン名を変更(または削除)して強制的に停止させる、といったトラブル対応も可能です。
  • themes(テーマ):サイトのデザインテンプレートである「テーマ」が格納されています。現在使用中のテーマも、過去に使っていたテーマもここにあります。子テーマを作成してカスタマイズする際も、このフォルダ内で作業します。
  • uploads(アップロードしたファイル):あなたがWordPressの管理画面(メディアライブラリ)からアップロードした画像や動画、PDFファイルなどがすべて格納されています。デフォルト設定では、「年」→「月」ごとにフォルダが自動で作成され、整理されていきます。
  • languages(言語ファイル):WordPress本体や、テーマ・プラグインの翻訳(日本語化)ファイル(.mo や .po ファイル)が格納されています。

 

【原則厳禁】触ってはいけない「wp-admin」「wp-includes」

 

この2つのフォルダは、WordPressというシステムを動かすための「コア(核)」部分です。

  • wp-admin(管理画面フォルダ):あなたが普段ログインしている管理画面を表示・機能させるためのファイル群です。WordPress wp-admin フォルダー内のファイル
  • wp-includes(本体機能フォルダ):WordPressの基本的な機能(API、クラス、関数など)が詰まったプログラムファイル群です。WordPress wp-includes フォルダー内のファイル

これらのフォルダ内のファイルを誤って削除したり書き換えたりすると、サイトが表示されなくなったり、管理画面にログインできなくなったりする深刻なエラーに直結します。

また、これらのフォルダは**WordPressのバージョンアップ時に丸ごと新しいファイルに上書きされます。**もしカスタマイズしていても全て消えてしまうため、絶対に直接編集してはいけません。


 

ルートディレクトリにある超重要なファイル

 

3大フォルダと同じ階層(ルートディレクトリ)にも多くのファイルがありますが、特に以下の2つだけは役割を覚えておきましょう。

  • wp-config.php(設定ファイル):WordPressで最も重要なファイルの一つです。データベースの接続情報(データベース名、ユーザー名、パスワード)など、サイトの根幹をなす設定が記述されています。

    このファイルがなくなったり、記述ミスがあったりするとサイトは表示されません。セキュリティ上も非常に重要で、厳重に管理する必要があります。

  • .htaccess(パーマリンク設定ファイル):主にサイトのパーマリンク(URL構造)をどのように表示させるかを制御(リダイレクト)しています。管理画面の「パーマリンク設定」を変更すると、このファイルが自動的に書き換わります。

 

(応用)テーマをカスタマイズするなら必須!「パス」の考え方

 

wp-content/themes/ の中にある、あなたが使用中のテーマフォルダをさらに深掘りすると、サイトのデザインや機能の「設計図」となるファイル群が入っています。

  • style.css: サイトのデザイン(CSS)を記述するだけでなく、テーマ名や作成者情報を定義する重要なファイル。
  • functions.php: テーマ独自の機能を追加・設定するためのプログラムファイル。
  • index.php: メインページ(トップページなど)のテンプレート。
  • single.php: 投稿(ブログ記事)ページのテンプレート。
  • page.php: 固定ページのテンプレート。
  • header.php / footer.php: サイト共通のヘッダーやフッターのテンプレート。

ここで重要なのが、静的なHTMLサイトとWordPressの「パス」の指定方法の違いです。

例えば、テーマフォルダ内に「images」フォルダを作り、そこに「logo.jpg」という画像を入れたとします。

静的なHTMLであれば、同じ階層の index.html からは <img src="images/logo.jpg" alt=""> と記述すれば表示されます。

しかし、WordPressのテンプレートファイル(index.php など)で同じ記述をしても、画像は表示されません。

これは、WordPressがルートディレクトリにある index.php を起点に動作し、様々なファイルを読み込んでページを生成しているため、images/logo.jpg という相対パスでは正しい画像の場所(wp-content/themes/あなたのテーマ名/images/logo.jpg)を指定できないからです。

 

どうやって指定するのか? → 専用の関数(テンプレートタグ)を使う

 

WordPressでは、こうした「正しいパス」を自動的に出力してくれる便利な関数(テンプレートタグ)が用意されています。

記述例:

PHP

<img src="<?php echo get_template_directory_uri(); ?>/images/logo.jpg" alt="">

このように get_template_directory_uri() という関数を使うことで、http://あなたのドメイン/wp-content/themes/あなたのテーマ名 というURLを自動で出力してくれます。

この書き方をしておけば、将来サイトのドメインを変更したり、WordPressのインストール先を変えたりしても、テンプレートファイル内のパスを一切修正する必要がありません。これこそが「システム化」された効率的な記述方法です。


 

テーマのファイルが表示される仕組み

ローカル環境で WordPress を htdocs の直下に「wp5」と言う名前でインストールした場合、この WordPress のサイトは http://localhost/wp5/ にアクセスすることで表示されます。

sample01 と言う名前のテーマを作成した場合、テーマのファイルは htdocs/wp5/wp-content/themes/sample01/ と言うディレクトリの中に配置されています。その中には通常インデックスファイルとして index.php と言うファイルがあります。

WordPressテーマフォルダー内

静的な HTML の場合、そのテーマ内のファイルへのパスは「http://localhost/wp5/wp-content/themes/sample01/ファイル名」となります。

実際、htdocs/wp5/wp-content/themes/sample01/images/ フォルダに保存された画像 sample_1.jpg は、http://localhost/wp5/wp-content/themes/sample01/images/sample_01.jpg により表示することができます。

しかし、テーマディレクトリ htdocs/wp5/wp-content/themes/sample01/ に配置された index.php に http://localhost/wp5/wp-content/themes/sample01/index.php でアクセスすると「Fatal error: Call to undefined function bloginfo()」と言うエラーが発生してうまく表示されません。このエラーは index.php に記述されている「bloginfo() と言う WordPress の関数が定義されていません」と言うような意味です。

但し、http://localhost/wp5/ にアクセスするとテーマ「sample01」の index.php (の内容)が問題なく表示されます。

これは、WordPress をインストールしたディレクトリ(この例の場合は wp5)に WordPress が予め用意した index.php と言うファイルがあるからです。そして .htaccess ファイルを使って WordPress の URL にアクセスがあった場合は、この index.php に誘導しています。

以下はこの index.php の内容です。

  1. <?php
  2. /**
  3. * Front to the WordPress application. This file doesn’t do anything, but loads
  4. * wp-blog-header.php which does and tells WordPress to load the theme.
  5. *
  6. * @package WordPress
  7. */
  8.  
  9. /**
  10. * Tells WordPress to load the WordPress theme and output it.
  11. *
  12. * @var bool
  13. */
  14. define(‘WP_USE_THEMES’, true);
  15.  
  16. /** Loads the WordPress Environment and Template */
  17. require( dirname( __FILE__ ) . ‘/wp-blog-header.php’ );

冒頭のコメントには「WordPress アプリケーションへの入り口です。このファイルはテーマをロードするために wp-blog-header.php を読み込む(load)以外は何もしません。」というようなことが記述されています。

最後の行の require() で wp-blog-header.php を読み込みます。これにより次々と定義された設定や関数、データベースの情報などが読み込まれ、以下のようなことが実行されます。

  • データベースの接続情報の読み込み
  • 必要な設定ファイル(関数の定義など)の読み込み
  • functions.phpの読み込み
  • アクションフックの実行
  • ページのデータのデータベースからの読み込み
  • テーマのテンプレートの読み込み

このような WordPress の処理によりテーマ内の適切なテンプレートを使ってページが表示されるようになっています。

このような仕組みになっているので、フォルダの構造が静的な HTML のように URL の構造とは一致していません。

このため、WordPress ではディレクトリやファイルの URL やパスを取得する関数や、個々のページの URL(パーマリンク)を取得する関数などが用意されています。

 

まとめ

 

WordPressのフォルダ構成を理解することは、一見難しそうに見えますが、ポイントは単純です。

  1. wp-content」フォルダだけが、あなたの資産(データ)置き場。
  2. wp-admin」「wp-includes」は、WordPress本体なので触らない。
  3. wp-config.php」は、超重要な設定ファイル。
  4. テーマのカスタマイズ時は、専用の関数(テンプレートタグ)でパスを指定する。

この構造を理解するだけで、バックアップの対象が明確になり、トラブルシューティングの際も慌てず対応できるようになります。安全で効率的なサイト運営のために、ぜひこの「設計図」を覚えておきましょう。

コメント

error: Content is protected !!