如何获取在GET_HEADER中定义的名称参数?

时间:2015-06-14 作者:passatgt

例如,在我的博客页面上,我使用get_header(\'blog\');, 但我不想创建一个名为header-blog.php, 因为我只想做一些小的调整。是否可以在我的header.php 文件

1 个回复
最合适的回答,由SO网友:fuxia 整理而成

有一个动作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_sidebarget_template_part_{$slug}.

结束

相关推荐

ADD_THEME_SUPPORT(‘CUSTOM-HEADER’)不在仪表板中添加选项菜单

我正在根据工具箱主题从头开始写一个新主题。我的WP安装是开箱即用的。我添加了add\\u theme\\u支持(“custom-header”);我的职能。php文件,但“标题”选项屏幕不会显示在仪表板中。如果我访问该站点,我可以在顶部的工具栏中看到它,但不能在仪表板中看到它。我错过什么了吗?