ブロックテーマかクラシックテーマかを見分ける方法|is_block_themeとtemplates/index.html
WordPressのテーマが、ブロックテーマかクラシックテーマかは、テーマの中に「templates/index.html」(または「block-templates/index.html」)というファイルがあるかで決まります。WordPress本体のコードは、このファイルの有無だけで判定しています。見分ける方法は3つあります。REST APIの「is_block_theme」の値を見る方法、テーマのファイルのURLに直接アクセスする方法、WordPressのコードを読む方法です。
この記事では、このサイトのテーマを実際に調べた結果と、WordPress公式のTheme Handbookの記載(確認日:2026年10月20日)を並べます。有料のテーマを選ぶ前に、「ブロックテーマ」「クラシックエディタ」といった表記を読み解く材料になります(有料WordPressテーマの選び方)。
1. 公式の定義:ブロックテーマとクラシックテーマ
| 種類 | Theme Handbookの説明 |
|---|---|
| ブロックテーマ | HTMLベースのブロックテンプレートで作られる。サイトエディターで、テンプレートを編集できる。theme.jsonでスタイルを設定する |
| クラシックテーマ | PHPベースのテンプレートの仕組み。2005年から続く仕組みで、今も使われている。ブロックテーマに比べて、守る標準が少ない |
| ハイブリッドテーマ | ブロック関連の新しい機能を取り入れたクラシックテーマ。公式の種類ではなく、コミュニティで使われる呼び方。最終的には、クラシックテーマとして扱われる |
つまり、theme.jsonがあるだけでは、ブロックテーマとは言えません。ブロックエディタに対応していても、クラシックテーマのままのものがあります。
2. WordPress本体が判定するコード
WordPress 7.1.2のclass-wp-theme.phpのis_block_theme()は、次の2つのファイルを順に調べます。
/templates/index.html
/block-templates/index.html
どちらかが読み取れるファイルとして存在すれば、ブロックテーマ(true)です。どちらもなければfalse、つまりクラシックテーマです。子テーマの場合は、子テーマのフォルダを先に、次に親テーマのフォルダを探します。
3. このサイトで調べた結果
方法①:REST APIのis_block_theme
管理者としてログインしている状態で、/wp-json/wp/v2/themes?status=activeを開くと、有効なテーマの情報が返ります。このサイト(確認日:2026年10月20日)の値です。
| 項目 | 値 |
|---|---|
| stylesheet(有効なテーマ) | lightning-child |
| template(親テーマ) | lightning |
| is_block_theme | false |
ログインしていない状態で同じURLを開くと、「有効化されたテーマを表示する権限がありません」というエラー(401)が返りました。この方法は、管理者向けです。
方法②:ファイルのURLにアクセスする
テーマのファイルは、/wp-content/themes/テーマ名/の下に置かれます。ブロックテーマ判定のファイルに、ブラウザからアクセスして、結果を見ました。
| URL(/wp-content/themes/ の下) | 結果 |
|---|---|
| lightning/templates/index.html | 404 |
| lightning/block-templates/index.html | 404 |
| lightning-child/templates/index.html | 404 |
| lightning-child/block-templates/index.html | 404 |
| lightning/theme.json | 200(ファイルがある) |
| lightning-child/theme.json | 404 |
判定のファイルは4つとも404で、親テーマにはtheme.jsonがあります。theme.jsonはあるが、templates/index.htmlはないので、REST APIのfalseと一致します。このテーマは、ブロックの設定ファイルを取り入れたクラシックテーマ(ハイブリッド)と考えられます。
この方法は、サーバーの設定で、テーマのフォルダへのアクセスを止めているサイトでは使えません。404になったことだけで、ファイルがないと決めつけず、REST APIの値と合わせて見てください。
方法③:サイトに入っていないテーマを調べる
買う前のテーマは、サイトに入れる前に、販売ページの記載で確かめます。たとえば、SWALLOWの公式ページには「クラシックエディタ」ベースのテーマ、LIQUID PRESSの公式ページには「フルサイト編集対応ブロックテーマ」と書かれています。販売ページの表記と、買った後のis_block_themeの値を、見比べることもできます。
4. ブロックテーマとクラシックテーマで、編集の方法が変わる所
- ブロックテーマは、ヘッダーやフッターなど、サイトの全体をサイトエディターで編集できます(Theme Handbookの記載)
- クラシックテーマは、ヘッダーなどの見た目を、PHPのテンプレートやカスタマイザー、ウィジェットで変えます
- ブロックテーマの子テーマは、スタイルの読み込みを、theme.jsonで済ませられる場合があります(Child Themesの記載)。クラシックテーマの子テーマは、style.cssを読み込む設定が必要になることが多いです
子テーマの確認については子テーマが有効か確かめる方法にまとめています。
まとめ
- ブロックテーマかは、templates/index.html(またはblock-templates/index.html)があるかで決まる
- theme.jsonがあるだけではブロックテーマではない。このサイトのLightningは、theme.jsonがあってis_block_themeはfalse
- 管理者なら、REST APIの/wp/v2/themes?status=activeでis_block_themeを見るのが、WordPress本体の判定と同じ結果を得られる方法
- ファイルのURLが404でも、アクセスを止めているだけの場合があるので、REST APIの値と合わせて見る
- 買う前のテーマは、販売ページの「ブロックテーマ」「クラシックエディタ」の表記で確かめる
本記事はWordPress公式のTheme Handbook・WordPress 7.1.2のソースコード・このサイトの実測(確認日:2026年10月20日)にもとづきます。サイトや環境で結果は変わることがあります。


