我不想在主页上显示正文/post\\u内容为空的帖子。因此,我在函数中添加了以下代码。php。它检测带有空正文的帖子,但仍显示它们。我预计如果返回“”,则不会显示帖子。
我怎样才能remove 是否显示帖子如何filter the_posts work?代码:
function remove_post_with_empty_body ( $posts ) {
if (($posts->post_content) == \'\') {
echo \'empty\'; //also tried return false; and return null;
return \'\';
}
else {
echo \'not empty\';
return $posts;
}
}
add_action(\'the_post\', \'remove_post_with_empty_body\');
最合适的回答,由SO网友:Bainternet 整理而成
首先,在您使用的代码中the_post
胡克,但你的问题是the_posts
胡克,这是两个不同的东西。
the_posts
在从数据库中选择帖子后立即调用,并将$posts数组传递给函数,因此您应该使用它。
至于the_post
钩子,它(通常)在自己的循环中被激发,改变任何东西(比如重定向)都会很晚,它不是一个过滤器钩子,而是一个动作钩子,这意味着如果你什么都不返回,它只是退出你的函数,而不影响结果。