MIKIYA KUBO

こんにちは、投稿者のKuboです。本記事では、最新のデフォルトテーマ
Twenty Twenty-Five(TT5)を、中小規模の事業サイトやオウンドメディアで
すぐに活かすための実務手順をまとめます。導入判断、子テーマ化、編集体制、パターン/
スタイル管理、運用までを一気通貫で整理します。

1. TT5の位置づけ(何が新しく、誰に向くか)

要点:TT5はブロックテーマの成熟版で、余計なCSSを排し、theme.json中心の設計70+のパターンにより、ビジネスサイトの量産・保守を簡潔にします。

  • WordPress 6.7同梱の新デフォルトテーマ。編集者はパターンから素早く統一レイアウトを作れます。
  • CSSは最小限。色や余白などの方針はtheme.jsonで管理し、編集画面とフロントで整合します。
  • 中小規模の事業サイト/オウンドメディアに向き、更新体制の標準化に強みがあります。

2. 最短導入:子テーマ化と初期設計(安全第一)

要点:本番に触れる前にステージングで子テーマ化し、方針(色/余白/許可ブロック)を先に固めます。

2-1. 子テーマの最小ファイル

以下はTT5の子テーマ最小構成です。フォルダ名は tt5-child を例にします。

/wp-content/themes/tt5-child/
  ├─ style.css
  ├─ functions.php
  └─ theme.json

style.css(ヘッダーのみでも可)

/*
 Theme Name: TT5 Child
 Template: twentytwentyfive
 Version: 1.0.0
 Author: MIKIYA KUBO
*/

functions.php(親テーマのstyleはブロックテーマでは通常不要。必要に応じて機能を追加)

<?php
// 今後の拡張用。初期は空でも可。

2-2. ノーコード派:Create Block Themeプラグイン

編集画面から子テーマの作成/エクスポートまで行えます。既存スタイルを反映した子テーマを安全に作れます。

2-3. 事前チェック

  • PHP 7.2+/WordPress 6.7+(TT5利用前提)。
  • 本番直適用は避け、ステージング→レビュー→本番の順で。
  • プラグイン互換は主要画面の操作テストで確認。

3. theme.jsonで“方針を固定”:色・余白・ブロック設定

要点:デザイン方針はtheme.jsonに集約し、編集の自由度とサイト全体の一貫性を両立させます(フォント指定は本記事では行いません)。

theme.json(抜粋例|色・余白・許可ブロック)

{
  "$schema": "https://schemas.wp.org/trunk/theme.json",
  "version": 3,
  "settings": {
    "color": {
      "palette": [
        {"slug":"ink","name":"Ink","color":"#111111"},
        {"slug":"brand","name":"Brand","color":"#101F55"},
        {"slug":"accent","name":"Accent","color":"#1e90ff"}
      ]
    },
    "spacing": { "units": ["px","rem"], "blockGap": "12px" },
    "blocks": {
      "core/paragraph": { "typography": { "lineHeight": 1.9 } },
      "core/heading":   { "spacing": { "margin": { "bottom": "8px" } } }
    },
    "typography": { "fluid": true }  // フォント指定はしない
  },
  "styles": {
    "color": { "text": "#111111" },
    "elements": {
      "link": { "color": { "text": "var(--wp--preset--color--brand)" } }
    }
  }
}

3-1. スタイルバリエーション

季節やキャンペーンで配色を切替えたい場合は、styles フォルダにJSONを置き、編集者がワンクリックで切替え可能にします。

4. パターン運用:編集を速くし、デザインを均一化

要点:頻出セクションはブロックパターン化し、誰が作っても品質とスピードが揃う状態にします。

/patterns/hero-cta.php(例:ヒーロー+CTA)

<?php
/**
 * Title: Hero with CTA (Brand)
 * Slug: tt5-child/hero-cta
 * Categories: call-to-action, hero
 */
?>

貴社の価値を、最短で伝える。

導入〜運用まで一気通貫。更新はパターンで高速・均一化。

PHPでの登録(6.0+は /patterns 配置だけで自動登録。細かい制御が必要なら register_block_pattern を使用):

<?php
add_action('init', function () {
  register_block_pattern(
    'tt5-child/hero-cta',
    [
      'title'       => __('Hero with CTA (Brand)', 'tt5-child'),
      'categories'  => ['call-to-action','hero'],
      'content'     => file_get_contents( get_theme_file_path('/patterns/hero-cta.php') ),
      'description' => 'ブランド色のヒーローと主要CTAを配置した汎用ヘッダー',
    ]
  );
});

5. Block Bindingsで動的データを安全に差し込む

要点:Block Bindings API(WP 6.5+)で、ポストメタ等の動的値をブロック属性へ結び付けられます。カスタムフィールドの運用を、ブロック編集の体験に自然に統合できます。

手順:メタ登録 → バインド元登録 → ブロックにbindingsを書く

<?php
// 1) ポストメタの登録(REST公開・単一・文字列)
add_action('init', function () {
  register_meta('post', 'company_phone', [
    'show_in_rest' => true,
    'single'       => true,
    'type'         => 'string',
    'description'  => '会社代表電話番号(公開用)',
  ]);
});

// 2) バインド元(ソース)の登録:company_phoneを返す
add_action('init', function () {
  register_block_bindings_source('site/company-phone', [
    'label'              => __('Company Phone', 'tt5-child'),
    'uses_context'       => ['postId'],
    'get_value_callback' => function($source_args, $block_instance) {
      $post_id = $block_instance->context['postId'] ?? 0;
      return get_post_meta($post_id, 'company_phone', true);
    },
  ]);
});

ブロック側(段落)の例:編集画面/フロントでメタ値が表示されます。

03-1234-5678

注意:メタキー先頭にアンダースコア(_)は不可。show_in_rest を true にします。

6. 編集体制と権限:事故を減らす運用ルール

要点:パターン+ロールで編集自由度を保ちつつ、重要部分のカスタムを抑制します。

  • 頻出セクションはパターン化し、説明文をブロックコメントに残す。
  • ナビ・フッターはテンプレートパーツとして編集者の変更範囲を限定
  • レビュー手順:下書き → 同僚レビュー → スケジュール公開(誤公開防止)。

7. パフォーマンスと移行の注意

要点:TT5は軽量ですが、画像・プラグイン・外部スクリプトで遅くなります。初期から“載せすぎない”設計を徹底します。

  • 画像は適切なサイズと形式で用意(メディア設定のサムネイルも確認)。
  • 不要なプラグインは停止・削除。計測はCore Web Vitals中心で。
  • 移行はステージング→差分比較→本番で行い、フォーム送信や決済などを重点テスト。

FAQ

Q1. 既存のクラシックテーマから移行できますか?

可能です。ウィジェットやテンプレート階層の違いがあるため、ステージングでテンプレートパーツとパターン置換の影響を必ず確認してください。

Q2. 子テーマは必須ですか?

運用で独自パターンやbindings、細かな制約を入れるなら子テーマを推奨します。将来の更新で上書きされにくくなります。

Q3. フォントはどこで管理しますか?

本記事ではフォント指定を行いません。必要時はtheme.jsonのtypographyやフォントライブラリを検討してください。

Q4. Block Bindingsはどのブロックで使えますか?

段落・見出し・画像・ボタンなどの一部属性で利用可能です(WP 6.5+)。詳細は開発者ドキュメントをご確認ください。