Privacy Policy © 2026 eBIZ CREATE Inc.

2026年最新のWordPressフルサイト編集と独自カスタマイズを両立させる具体的な手順

viewpath20261111 010549 d159ad123b0b699963178d04629d3f62

【動作確認済み環境】 ・WordPress:6.8 ・PHP:8.2 ・確認日:2026年1月 ・テーマ:Twenty Twenty-Four ※環境によって動作が異なる場合があります。必ず検証環境でお試しください。 フルサイト編集(FSE)が普及してきましたが、実際の案件で「ここだけはPHPで細かく制御したい」「独自デザインを当てたいけれど、どう組み合わせるのが正解か迷う」というご相談をよくいただきます。 すべてをブロックで完結させるのは理想的ですが、クライアントの細かな要望に応えるためには、従来型のカスタマイズが必要になる場面も少なくありません。正直に言うと、設計段階でこの境界線を見誤り、後から修正に追われた経験もあります。 この記事では、実務の現場で直面するブロックテーマと独自カスタマイズの境界線をどう引くか、私たちが実際の案件で採用しているハイブリッドな構築手順をシェアします。 ■ この記事でわかること ・フルサイト編集と従来型テーマを組み合わせる判断基準がわかります ・実務で使えるtheme.jsonの基本設計と独自CSSの適切な読み込み方がわかります ・運用を見据えたパターンとカスタムブロックの使い分けができるようになります ・納品後にクライアントが安全に運用するための編集権限の制御方法がわかります

1. フルサイト編集と従来型テーマのハイブリッド構築が求められる背景

WordPressのブロックエディターでサイト全体を編集できる機能であるFSE(フルサイト編集)が浸透し、ノーコードでの構築の幅が大きく広がりました。しかし、実際の制作現場では「すべてのテーマをFSEだけで構築する」というケースばかりではありません。 従来のPHPテンプレートを中心としたクラシックテーマの柔軟性と、FSEの直感的な操作性を組み合わせた「ハイブリッド構築」という選択肢をとる案件が増加しています。 以前、コーポレートサイトの全面リニューアル案件で、更新担当者から「お知らせやコラムのレイアウトは自由に組みたいが、商品詳細ページや会社概要などの根幹となるページは、デザインが崩れないようにガチガチに固定してほしい」という要望をいただきました。 FSEのみで構築した場合、クライアントが意図せず共通パーツのテンプレートを編集してしまい、サイト全体のレイアウトが崩れてしまうリスクがあります。一方で、従来のクラシックテーマのみで構築すると、ランディングページのような自由なレイアウトを組みたい場合に、都度コーディングの依頼が発生してしまい、更新のスピード感が失われます。 この相反する課題を解決するために、固定ページや投稿のコンテンツエリアはブロックエディターを活用して柔軟に構築しつつ、ヘッダーやフッター、特定のカスタム投稿タイプのアーカイブページなどは、従来のPHPファイルで制御するというハイブリッドな手法が選ばれるようになっています。 内部的な仕様として、WordPressはブロックテーマ(FSE対応テーマ)とクラシックテーマの中間的な設定を許可しています。`theme.json`という設定ファイルをクラシックテーマ内に配置することで、エディター側のカラーパレットやフォントサイズなどのブロック設定を一元管理しながら、出力は従来のPHPテンプレートに任せることが可能です。 この手法により、制作側はGitなどを用いたバージョン管理や複雑な条件分岐を用いた高度なカスタマイズを維持しつつ、クライアントには直感的なコンテンツ編集環境を提供できます。長期的な運用を見据えた際、保守性の高さと更新のしやすさのバランスが取れる点が、ハイブリッド構築が求められている最大の理由です。 迷った際の判断基準として、以下の表にハイブリッド構築の向き不向きを整理しました。

項目向いているケース向いていないケース
ハイブリッド構築クライアントが日常的にコンテンツを更新し、かつ複雑な要件や強固なレイアウト保護が必要な場合非常にシンプルな構成で、すべてノーコードで管理したい場合、または更新頻度が極端に低い場合
このように、案件の要件や運用体制に合わせて、どちらかの機能に偏るのではなく、両者のメリットを引き出す設計をすることが、現在のWeb制作において重要になっています。

2. 実案件でつまずきやすいブロックテーマとPHPカスタマイズの境界線

WordPressのフルサイト編集(FSE)を実案件に導入する際、これまでクラシックテーマでの制作に慣れている制作者ほど直面しやすい壁があります。それが「どこまでをブロックエディターの機能で作り、どこからをPHPでカスタマイズするのか」という境界線の見極めです。 クラシックテーマでは、テンプレートファイルやfunctions.php(テーマの機能を追加・カスタマイズするファイル)に直接コードを書いて制御するのが一般的でした。しかし、FSEに対応したブロックテーマでは、サイト全体の設定やデザインをtheme.jsonやブロックエディター上で管理する設計思想に変わっています。 以前、コーポレートサイトの案件で、カスタム投稿タイプのアーカイブページのデザインを細かく制御しようとした際のことです。これまで通りfunctions.phpにフック(WordPressの処理に割り込んで独自の処理を追加する仕組み)を書いて出力を書き換えようとしましたが、ブロックテーマ側のテンプレート設定と競合し、意図したレイアウトが反映されないという問題に当たりました。 この時の解決策は、PHPでの出力制御を最小限に抑え、必要なデータをブロックとして呼び出せるようにカスタムブロックを開発し、レイアウト自体はFSEのテンプレートエディターで行うというアプローチに切り替えることでした。 この経験から、実務においては以下のように役割を明確に分けるようにしています。 ・デザインとレイアウトの制御:theme.jsonとFSEのエディターに任せる ・データの取得と複雑な処理:PHP(プラグインやfunctions.php)で行う ・両者の橋渡し:カスタムブロックやパターンとして登録する 例えば、特定の条件でしか表示させない複雑なバナー領域を作りたい場合、テンプレートファイルに直接PHPの条件分岐を書くのではなく、以下のようにショートコードやカスタムブロックを定義して、FSE側から配置できるようにします。

php
// functions.phpに記載します
// 特定の権限を持つユーザーにのみ表示するコンテンツをショートコード化
add_shortcode( 'member_only_content', 'ebiz_member_only_content_render' );

function ebiz_member_only_content_render( $atts, $content = null ) {
// ユーザーがログインしているか、特定の権限を持っているかを確認
if ( is_user_logged_in() && current_user_can( 'read_private_posts' ) ) {
// 安全に出力するためにエスケープ処理(出力データを安全な形に変換する処理)を行う
return '<div class="member-content">' . wp_kses_post( $content ) . '</div>';
}

// 条件を満たさない場合は何も表示しない
return '';
}
このコードにより、複雑な権限判定のロジックはPHP側に持たせつつ、コンテンツの配置場所や装飾はサイト管理者がFSEの画面上で自由にコントロールできるようになります。 この書き方が推奨される理由は、WordPressの今後の方向性がノーコードでのサイト構築と高い柔軟性を両立させるFSEへと向かっているためです。テーマのアップデートや将来的な仕様変更の影響を受けにくくするためには、デザインとロジックを疎結合にしておくことが重要です。
開発手法向いているケース向いていないケース
theme.jsonでの制御サイト全体のカラー、タイポグラフィ、余白の共通ルールを定める場合ユーザーのログイン状態に応じた動的な表示切り替えが必要な場合
PHPでのカスタマイズ外部APIからのデータ取得や、複雑なデータベースクエリを伴う場合固定ページの単純なレイアウト変更やテキストの装飾
カスタムブロック化運用者が頻繁に配置を変えたい、複雑なデータ出力部品を作る場合一度配置したら二度と変更しない、静的で単一のコンテンツ
迷ったときは、「サイト運用者が将来的にノーコードで変更したい部分かどうか」を基準に考えると整理しやすいです。運用者が触る可能性がある部分はブロックエディター側へ、裏側で動く不変のルールはPHP側へと分担することで、保守性が高くクライアントにも喜ばれるサイト設計が実現します。

3. 実務で使えるtheme.jsonの基本設計と独自CSSの適切な読み込み方

FSE(フルサイト編集:ブロックエディターでサイト全体を編集できるWordPressの新機能)を利用する際、デザインのベースとなるのが`theme.json`です。実際の案件でFSEテーマを構築する場面において、このファイルにどこまで設定を持たせ、どこから独自のCSSで上書きするかの線引きが、保守性を大きく左右します。 まず、`theme.json`で制御すべきなのは、カラーパレット、タイポグラフィ、余白などの「サイト全体の基本ルール」です。これにより、エディター上でも一貫したデザインを維持しつつ、クライアントがブロックを追加した際にもデザインの崩れを防ぐことができます。 以下は、実務でベースとして使用している`theme.json`の記述例です。

json
{
"$schema": "https://schemas.wp.org/trunk/theme.json",
"version": 2,
"settings": {
"color": {
"palette": [
{
"slug": "primary",
"color": "#005baa",
"name": "Primary Color"
},
{
"slug": "secondary",
"color": "#f7f7f7",
"name": "Secondary Color"
}
],
"custom": false,
"customGradient": false
},
"typography": {
"customFontSize": false,
"fontSizes": [
{
"slug": "small",
"size": "14px",
"name": "Small"
},
{
"slug": "normal",
"size": "16px",
"name": "Normal"
}
]
},
"layout": {
"contentSize": "800px",
"wideSize": "1200px"
}
}
}
この設定のポイントは、`”custom”: false`や`”customFontSize”: false`を指定している点です。これにより、エディター上で任意の色やフォントサイズを自由に設定できなくなります。正直に言うと、以前は制限を設けずに納品していましたが、クライアントがエディター上で独自の色を多用してしまい、サイト全体の統一感が損なわれるというトラブルがありました。それ以降、ブランドガイドラインに沿ったパレットのみを提供し、自由な変更を制限する形をデフォルトの仕様としています。 次に、独自CSSの適切な読み込み方について解説します。`theme.json`だけでは、複雑なアニメーションや特定のブレイクポイントに合わせた細かなレスポンシブ調整、擬似要素(`::before`や`::after`)を活用した装飾などを完全に表現することは困難です。そのため、従来のテーマ開発と同様に独自のCSSを読み込む必要があります。 FSEテーマにおいて独自CSSを読み込む際は、`functions.php`(テーマの機能を追加・カスタマイズするファイル)のアクションフックを利用します。
php
<?php
/
 独自のCSSをフロントエンドとエディターの両方に読み込む
/
function ebiz_enqueue_custom_styles() {
// タイムスタンプを付与してキャッシュをクリアしやすくする
$version = filemtime( get_theme_file_path( '/assets/css/style.css' ) );

// フロントエンド用のCSS読み込み
wp_enqueue_style(
'ebiz-custom-style',
get_theme_file_uri( '/assets/css/style.css' ),
array(),
$version
);
}
// wp_enqueue_scriptsはフロントエンドでスクリプトやスタイルを読み込むフック
add_action( 'wp_enqueue_scripts', 'ebiz_enqueue_custom_styles' );

/
 ブロックエディター内に独自CSSを適用する
/
function ebiz_enqueue_editor_styles() {
// エディター用にスタイルを追加(add_theme_support('editor-styles')が前提)
add_editor_style( 'assets/css/style.css' );
}
// after_setup_themeはテーマ初期化時に実行されるフック
add_action( 'after_setup_theme', 'ebiz_enqueue_editor_styles' );
このコードでは、フロントエンドだけでなく、ブロックエディター側にも同じCSSを適用しています(`add_editor_style`を使用)。エディターと実際の表示の差異をなくすことは、クライアントが直感的に記事を編集できるようにするために非常に大切です。 長期的な保守性や将来性を考えると、WordPressのコア機能がアップデートされた際の影響を最小限に抑える必要があります。`theme.json`で制御できる標準的なレイアウトや配色は可能な限り`theme.json`に任せ、どうしてもカバーしきれない高度な装飾や特定のカスタムブロック用のスタイルのみを外部CSSに切り出す設計が推奨されます。
項目向いているケース向いていないケース
theme.jsonでの設定ベースカラー、標準フォントサイズ、全体幅の制御複雑なホバーアニメーション、ブレイクポイントごとの緻密な余白調整
独自CSS(外部ファイル)擬似要素を使った装飾、複雑なグリッドレイアウト文字色や背景色の単発の変更(エディターで完結すべき処理)
迷ったときは、「エディターの標準設定パネルに組み込みたい基本ルール」は`theme.json`、「特定の要素に対する例外的な装飾」は独自CSS、と整理して設計を進めてみてください。

4. パターン機能とカスタムブロックを活用した運用しやすい設計基準

FSE(フルサイト編集:ブロックエディターでサイト全体を編集できる機能)を実案件に導入する際、現場でよく議論になるのが「どこまでをパターン機能で作り、どこからをカスタムブロックとして開発するか」という線引きです。 実務において、クライアントが直感的に更新できる状態を作りつつ、将来的なデザイン変更にも耐えられる設計にするためには、この2つの使い分けが非常に重要になります。 ブロックパターンは、既存のコアブロックを組み合わせてレイアウトを定義する機能です。一方のカスタムブロックは、独自のHTML構造や入力項目を持たせた専用のブロックを開発する手法を指します。 以前、あるコーポレートサイトの案件で、見出しやボタン、カード型のレイアウトなど、あらゆる要素をブロックパターンとして登録して納品したことがありました。納品直後は問題なかったのですが、数ヶ月後に「すべてのカードレイアウトの余白を少し調整したい」というご要望をいただいた際、非常に手間がかかってしまったという失敗経験があります。 ブロックパターンは、一度エディターに配置されると、それぞれのブロックが独立した設定を持つため、後から一括でデザインを変更することが難しいという特徴を持っています。そのため、現在では以下のような基準で使い分けるようにしています。

項目向いているケース向いていないケース
パターン機能ページ全体の構成テンプレートや、配置後に内容を自由に変更したい柔軟なレイアウトの場合後から全ページ共通でデザインや余白を一括変更する可能性があるパーツの場合
カスタムブロック企業情報やスタッフ一覧など、決まった入力項目があり、出力されるHTML構造を厳密に制御したい場合ページごとにレイアウトを細かく調整したい場合
この基準を設けたことで、納品後の保守運用が格段にスムーズになりました。 では、実際に実務で頻繁に使用するブロックパターンの登録方法をご紹介します。テーマの機能を追加するファイルである `functions.php` に記述することで、独自のカテゴリー内にパターンを登録できます。
php
// functions.php に記述します
// テーマのセットアップのタイミング(after_setup_theme)で実行します

function ebiz_register_custom_block_patterns() {
// まず独自のパターンカテゴリーを登録します
register_block_pattern_category(
'ebiz-corporate',
array( 'label' => 'コーポレート用レイアウト' )
);

// 次に具体的なパターンを登録します
register_block_pattern(
'ebiz/hero-section',
array(
'title'       => 'メインビジュアルセクション',
'description' => '画像とテキストを重ねたヒーローエリアです',
'categories'  => array( 'ebiz-corporate' ),
// エディターからコピーしたブロックのHTMLをcontentに記述します
'content'     => '<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained"><h2 class="wp-block-heading">メインタイトル</h2></div></div>',
)
);
}
add_action( 'init', 'ebiz_register_custom_block_patterns' );
このように、用途を明確にしてパターンを登録しておくことで、クライアント自身がページを追加する際にも、デザインのトーン&マナーを損なわずに運用することが可能になります。 カスタムブロックの開発には React の知識が必要になるなど少しハードルが上がりますが、運用フェーズでの保守性を考慮すると、変更頻度の高い共通パーツはカスタムブロック化するか、再利用可能ブロック(同期パターン)として管理する設計が望ましいと言えます。 迷ったときは、「エディターに配置した後、構造が変わることはあるか」を基準に考えてみてください。長期的に見て、お客様が迷わず更新でき、かつ制作者がメンテナンスしやすいバランスを見つけることが、FSEを活用するうえでの大きな鍵となります。

5. 納品後の保守性を高めるフルサイト編集での編集権限コントロール

FSE(フルサイト編集)を実際の案件に導入する際、最も頭を悩ませるのが「クライアントの編集権限をどこまで許可するか」という問題ではないでしょうか。 フルサイト編集は、ブロックエディターでサイト全体を編集できる画期的な機能ですが、裏を返せば「クライアントが誤ってサイト全体のレイアウトを壊してしまうリスク」を抱えていることになります。実際の制作現場でも、「納品後にヘッダーが消えてしまった」というご相談をいただくことが増えてきました。 ここでは、実務で採用している具体的な権限コントロールの方法をシェアします。

theme.jsonを活用したブロック単位の制限

フルサイト編集での権限コントロールは、基本的に `theme.json` ファイルで行うのが現在のスタンダードなアプローチです。特定のブロックをロックしたり、デザインの変更(色やタイポグラフィなど)を制限したりすることで、レイアウトの崩れを未然に防ぎます。 以下は、実案件でよく設定する `theme.json` の記述例です。
json
{
"version": 2,
"settings": {
"color": {
"custom": false, // カスタムカラーパレットを無効化
"customGradient": false // カスタムグラデーションを無効化
},
"typography": {
"customFontSize": false, // 任意のフォントサイズ指定を無効化
"dropCap": false // ドロップキャップ機能を無効化
},
"layout": {
"contentSize": "800px",
"wideSize": "1200px"
}
}
}
この設定を行う理由は、ブランドガイドラインからの逸脱を防ぐためです。クライアントが意図せず奇抜な色や巨大な文字サイズを設定してしまうのを防ぎ、デザインの統一感を保つことができます。

functions.phpでのエディター機能の制限

`theme.json` だけでは対応しきれない細かな制限や、特定のユーザー権限(たとえば「編集者」権限)に対してのみ制限をかけたい場合は、`functions.php` (テーマの機能を追加・カスタマイズするファイル)を活用します。
php
/
 編集者権限のユーザーに対して、フルサイト編集メニューを非表示にする

 どこに書くか:functions.php
 いつ動くか:管理画面のメニュー読み込み時(admin_menuフック)
/
function restrict_fse_menu_for_editors() {
// 現在のユーザーが「管理者(administrator)」でない場合
if ( ! current_user_can( 'manage_options' ) ) {
// サイトエディターのメニューを取り除く
remove_submenu_page( 'themes.php', 'site-editor.php' );
}
}
add_action( 'admin_menu', 'restrict_fse_menu_for_editors' );
この書き方、うちではFSEを導入するコーポレートサイト案件のデフォルトにしています。理由は、日常的なブログ更新を行う担当者には、サイト全体の構造にアクセスする必要がないケースがほとんどだからです。

向いているケース・向いていないケースまとめ

フルサイト編集の権限制限について、どのような場合に厳格に制限すべきか、あるいは緩やかにすべきかを整理しました。迷ったときはこう考えると整理しやすいです。
項目向いているケース向いていないケース
厳格な制限複数人で運用するコーポレートサイトの場合クライアントがHTML/CSSの知識を持つ場合
制限なし個人運営のブログや、デザインを頻繁に変更したい場合ブランドガイドラインが厳密な企業サイトの場合

保守性と将来性を見据えた判断基準

長期的な保守性を考えると、「制限しすぎない」ことも一つのポイントです。WordPressの方向性として、フルサイト編集の機能は日々拡張されています。ガチガチに制限をかけてしまうと、今後の便利な新機能をクライアントが享受できなくなる可能性があります。 そのため、実務では「壊れると致命的な共通パーツ(ヘッダーやフッター)は制限し、コンテンツエリアは自由に編集できるようにする」というバランスを意識して設計することをお勧めします。そうすることで、クライアントの更新の自由度を保ちながら、安全な保守運用が可能になります。 Web制作のご相談はお気軽にeBIZクリエイトまでお問い合わせください。案件の規模や体制に合わせた、最適なWordPress設計をサポートいたします。

image?i=181538

2026年最新のWordPressフルサイト編集と独自カスタマイズを両立させる具体的な手順