如何获取get_header中定义的name参数?


8

例如,在我的博客页面上,我使用get_header('blog');,但我不想创建一个新的标题模板header-blog.php,因为我只想进行一些小的调整。是否有可能以某种方式在我的header.php文件中获取此名称参数?

Answers:


7

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_footerget_sidebarget_template_part_{$slug}

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.