たとえば、私のブログページではget_header('blog');
を使用していますが、 header-blog.php という新しいヘッダーテンプレートを作成したくないのです。どういうわけか私の header.php ファイルでこの名前パラメータを取得することは可能ですか?
あなたが使用できるアクションget_header
があります。テーマのfunctions.php
に、そのアクションのコールバックを登録します。
add_action( 'get_header', function( $name ) {
add_filter( 'current_header', function() use ( $name ) {
// always return the same type, unlike WP
return (string) $name;
});
});
また、再利用できる小さなヘルパークラスを書くこともできます。
class Template_Data {
private $name;
public function __construct( $name ) {
$this->name = (string) $name;
}
public function name() {
return $this->name;
}
}
add_action( 'get_header', function( $name ) {
add_filter( 'current_header', [ new Template_Data( $name ), 'name' ] );
});
あなたのheader.php
では、現在の部品/名前を次のように取得します。
$current_part = apply_filters( 'current_header', '' );
get_footer
、get_sidebar
およびget_template_part_{$slug}
でも同じことができます。