block_template_part()
は、WordPress のブロックテーマ(FSE:フルサイト編集)環境において、テンプレートパーツを呼び出して出力する関数です。
テーマ内に登録されたパーツ(例:header, footer, sidebar など)を、動的にテンプレートの一部として読み込みます。特定のテンプレートの一部を再利用する際に使われ、サイト全体の構造を統一するのに役立ちます。
目次
機能の説明
どういうテンプレートタグなのか?
- ブロックテーマにおけるテンプレートパーツ(
template-parts/*.html
)を表示する関数。 header.html
やfooter.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.html
やparts/header.html
が存在するか確認。 - ブロックテーマであることを確認。
- ファイル名とスラッグが一致しているか確認。
Q&A
まとめ
block_template_part()
はブロックテーマのテンプレートパーツを動的に読み込む関数。header
,footer
,sidebar
などの共通パーツを出力するのに使われる。- 条件付き表示やパーツ切り替えで柔軟にカスタマイズ可能。
- クラシックテーマでは使えず、FSE対応テーマでのみ使用推奨。
コメント