我正在尝试通过函数中的代码自定义Wordpress Genesis框架中的部分标题.php.php如下所示:
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';
}
}
目标是让修改显示在具有特定正文类"页面模板"的页面上。
该函数在没有"if"语句的情况下工作,但不能使用它。这里可能出了什么问题?
或者也许可以基于页面执行操作?
无需检查正文上的page-template
类,只需检查页面上是否正在使用页面模板,如下所示:
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';
}
}
以下是有关WordPressis_page_template()
功能的更多信息。您甚至可以使用该函数来检查是否正在使用特定的页面模板。例如,如果使用about.php
模板,is_page_template( 'about.php' )
将返回true
。
要检查正文类,请使用 get_body_class NOT class_exists 来检查 OOP 中使用的 PHP 类。
if ( in_array( 'page-template', get_body_class() ) ) {