不显示没有内容的帖子

时间:2020-03-11 作者:Knownow

在我的博客索引页面中,我不想显示内容为空但只有标题的帖子(How does filter the_posts work?) . 我正在看“the\\u post”挂钩,它似乎在环内开火。因此,我认为如果操作挂钩在循环中触发,我可以检查“the\\u post”挂钩上的帖子内容,如果为null,则继续循环。我尝试了以下方法:

add_action(\'the_post\' , \'rb_test_the_post\');

function rb_test_the_post($post){
    if (($post->post_content) == \'\') { 
        continue;
    }
} 
这给了我Wordpress中的一个错误(“网站遇到了技术困难”,我的编辑器中也出现了错误,因为它没有看到任何while或if语句作为continue语句)。我无法理解为什么continue语句不起作用,即使钩子是在循环中激发的。谁能解释一下吗?

还有,如何做到这一点(使用插件而不是主题,因为我希望即使在我更改主题时也不要显示空帖子)?

3 个回复
最合适的回答,由SO网友:Knownow 整理而成

我想用插件而不是主题来实现这一点。以下是方法:

function my_filter_where($where = \'\'){
    return $where .= "AND trim(coalesce(post_content, \'\')) <>\'\'";
}
add_filter(\'posts_where\', \'my_filter_where\');

SO网友:Asha

内容是post对象的属性,而不是查询对象的属性
使用$post或get\\u post():

  if( \'\' !== get_post()->post_content ) {
    // do something
    }

SO网友:sleepingpanda

只需检查帖子内容是否为空:

if ( "" === $post->post_content )
{
//dont display your post 
 }
else
{
 //your post\'s code goes here
  the_title();
  the_content();
 }

相关推荐