Wordpress中的一些过滤器对用户并不友好,并且并不总是能够满足用户的需要。
the_title
筛选器将对的所有实例应用更改get_the_title()
(用于the_title()
). 因此,小部件标题、相关帖子标题和帖子链接标题都发生了更改,例如,当您只需要在单个页面上定位主帖子时,这是一个问题
我最近碰到this post 乔希·莱文森在他的博客上发表了同样的观点。他建议利用loop_start
操作,检查是否在主查询中,如果在主查询中,请应用the_title
滤器如果查询不是主查询,只需删除筛选器
我对原始代码做了一些更改。请注意,您需要php 5.3+,因为闭包只在php 5.3中引入
add_action(\'loop_start\', function ($q)
{
if($q->is_main_query()){
add_filter( \'the_title\', \'modified_post_title\', 10, 2);
}else{
remove_filter(\'the_title\',\'modified_post_title\', 10, 2);
}
});
function modified_post_title($title)
{
global $post;
?><pre><?php var_dump($post->ID); ?></pre><?php
}