Câu trả lời:
Có một hành động get_header
mà bạn có thể sử dụng. Trong chủ đề của bạn functions.php
, hãy đăng ký gọi lại cho hành động đó:
add_action( 'get_header', function( $name ) {
add_filter( 'current_header', function() use ( $name ) {
// always return the same type, unlike WP
return (string) $name;
});
});
Bạn cũng có thể viết một lớp trợ giúp nhỏ mà bạn có thể sử dụng lại:
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' ] );
});
Trong của bạn header.php
, bạn có được phần / tên hiện tại với:
$current_part = apply_filters( 'current_header', '' );
Bạn có thể làm tương tự với get_footer
, get_sidebar
và get_template_part_{$slug}
.