你几乎成功了!
这是您的原始代码:
add_filter( \'the_title\', \'remove_page_title\' );
function remove_page_title() {
if(is_page(\'138\')) {
}
return \'\';
}
它所做的是在
the_title
不接受任何参数。这是你的第一个错误。这个
the_title
过滤器实际上有两个参数——页面/帖子标题和页面/帖子id。因此,首先,让我们重写我们的挂钩:
add_filter( \'the_title\', \'remove_page_title\', 10, 2 );
function remove_page_title( $title, $id ) {
}
这将为过滤器分配优先级10,并允许我们接受过滤器发送的两个参数。然后我们指定函数接受的参数。
在函数内部,我们想检查我们是否在正确的页面上。如果是,返回\'\'
, 如果我们没有返回标题:
if( \'138\' == $id ) return \'\';
return $title;
原来的函数总是返回
\'\'
当过滤器运行时。这就是为什么你在每一页上都有一个空白标题,而不仅仅是你想要的那一页。
我们的完整代码,因此您的完整过滤器,重写为接受参数并使用正确的逻辑:
add_filter( \'the_title\', \'remove_page_title\', 10, 2 );
function remove_page_title( $title, $id ) {
if( \'138\' == $id ) return \'\';
return $title;
}