首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过functions.php替换部分报头

通过functions.php替换部分报头
EN

Stack Overflow用户
提问于 2019-04-02 19:14:40
回答 2查看 60关注 0票数 0

我正在尝试通过functions.php中的代码定制Wordpress Genesis框架中的部分header.php,如下所示:

代码语言:javascript
复制
if ( class_exists( 'page-template' ) ) {
    remove_action( 'genesis_header', 'genesis_do_header' );
    add_action( 'genesis_header', 'gd_genesis_do_header' );

    function gd_genesis_do_header() {
        echo 'test';
    }
}

目标是让修改显示在具有某个主体类“page-template”的页面上。

该函数在没有'if'-statement‘的情况下工作,但不能与它一起工作。这里会有什么问题呢?

或者,也许可以基于页面执行操作?

EN

回答 2

Stack Overflow用户

发布于 2019-04-02 22:07:33

不需要检查body上的page-template类,只需检查页面上是否正在使用页面模板,如下所示:

代码语言:javascript
复制
if ( is_page_template() ) {
    remove_action( 'genesis_header', 'genesis_do_header' );
    add_action( 'genesis_header', 'gd_genesis_do_header' );

    function gd_genesis_do_header() {
        echo 'test';
    }
}

这是more information about WordPress' is_page_template() function。您甚至可以使用该函数检查是否正在使用特定的页面模板。例如,如果正在使用about.php模板,则is_page_template( 'about.php' )将返回true

票数 1
EN

Stack Overflow用户

发布于 2019-05-12 02:14:31

要检查主体类,请使用get_body_class而不是class_exists,后者将检查OOP中使用的PHP类。

代码语言:javascript
复制
if ( in_array( 'page-template', get_body_class() ) ) {
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55473415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档