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対応テーマでのみ使用推奨。
コメント