MENU

block_template_part()

block_template_part() は、WordPress のブロックテーマ(FSE:フルサイト編集)環境において、テンプレートパーツを呼び出して出力する関数です。

テーマ内に登録されたパーツ(例:header, footer, sidebar など)を、動的にテンプレートの一部として読み込みます。特定のテンプレートの一部を再利用する際に使われ、サイト全体の構造を統一するのに役立ちます。

目次

機能の説明

どういうテンプレートタグなのか?

  • ブロックテーマにおけるテンプレートパーツ(template-parts/*.html)を表示する関数。
  • header.htmlfooter.html など、パーツ単位で分けられたテンプレートを呼び出す。

どういう時に使うのか?

  • ブロックテーマで、共通パーツを読み込む必要があるとき。
  • テーマのコード内で手動でテンプレートパーツを表示したいとき(例:条件付きで表示)。

シンプルなコード例

<?php
block_template_part( 'header' );

このコードは、テーマの parts/header.html または header.html を探し、そこに含まれるブロックを出力します。

使い方の説明

基本構文

block_template_part( string $part_name, string $part_area = '', array $args = [] );
パラメータ説明
$part_nameテンプレートパーツのスラッグ(例: header
$part_areaエリアタイプ(例: header, footer, sidebar)※省略可
$argsオプションの引数配列(パーツにデータを渡す用途など)

引数付きの使用例

block_template_part( 'footer', 'footer', [ 'class' => 'site-footer' ] );

$args はテーマ開発者が独自に template-part のブロックで利用できます。

一緒に使うことが多い関連タグ

get_template_part()

get_template_part( 'template-parts/content', 'single' );

クラシックテーマでよく使われたパーツ読み込み関数。FSEでは block_template_part() が推奨されます。

get_block_template()

$template = get_block_template( 'theme_slug//footer' );
echo $template->content;

ブロックテンプレートの内容をプログラム的に取得したいときに使用。

追加情報で取得したい場合

ブロックテンプレートの一覧を取得

$templates = get_block_templates( [], 'wp_template_part' );
foreach ( $templates as $template ) {
    echo esc_html( $template->title );
}

ブロックテンプレートの内容を個別に取得

$template = get_block_template( 'theme_slug//header' );
echo apply_filters( 'the_content', $template->content );

このテンプレートタグを利用してのカスタマイズ

条件に応じたテンプレート切り替え

if ( is_page( 'contact' ) ) {
    block_template_part( 'contact-header' );
} else {
    block_template_part( 'header' );
}

ページによって違うヘッダーを表示したい場合などに有効です。

想定されるトラブル

テンプレートパーツが表示されない

解決方法

  • テーマに header.htmlparts/header.html が存在するか確認。
  • ブロックテーマであることを確認。
  • ファイル名とスラッグが一致しているか確認。

Q&A

クラシックテーマで使える?

原則使えません。FSE(ブロックテーマ)専用です。

どこにテンプレートパーツを置けば良い?

parts/ ディレクトリまたはテーマ直下に .html ファイルとして配置します。

$args はどうやって使うの?

現時点では FSE のブロック内で PHP 的に $args を直接扱う方法は制限があります。将来的な拡張に備えたものです。

まとめ

  • block_template_part() はブロックテーマのテンプレートパーツを動的に読み込む関数。
  • header, footer, sidebar などの共通パーツを出力するのに使われる。
  • 条件付き表示やパーツ切り替えで柔軟にカスタマイズ可能。
  • クラシックテーマでは使えず、FSE対応テーマでのみ使用推奨。
よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次