2015-10-04 48 views
2

我正在使用查询在我的主页上随机显示1个自定义帖子类型。我试图过滤出内容为空的帖子,以便不在循环中显示这些帖子。是否有可能将查询设置为仅显示帖子“post_content”不为空?我试过“meta_query”,但没有运气。 As covered here.Wordpress查询只显示内容不为空的帖子

我也玩过其他东西,比如试图在循环中获取下一篇文章,如果内容是空的,但无法找到一种方法来做到这一点。

这是我试图得到下一篇文章,如果内容是空的。但我不认为“get_next_post();”这样工作。

$loop = new WP_Query(array(
     'post_type' => 'custom', 
     'post_status' => 'publish', 
     'posts_per_page' => 1, 
     'orderby' => 'rand', 
     'order' => 'DESC', 
    )); 
while ($loop->have_posts()) : $loop->the_post(); 

if($post->post_content=="") { 
get_next_post(); 
} else { 
the_title(); 
the_content(); 
}; 
endwhile; 

任何意见,将不胜感激。

+0

其实我试过了,但是它似乎没有正常工作。它开始添加其他帖子类型,并将页面添加到我的查询输出中。 – jberg

+0

我只是自己试了一下,它工作正常。你确定你在其他地方没有碰撞吗? – Ohgodwhy

+0

无赖。我必须在其他地方发生碰撞,因为我得到的一切都返回。页面,文章,甚至修订内容。实际上,除了我的自定义帖子类型以外的所有内容但永远不会空...... ha – jberg

回答

2

像这样基本的东西应该适合你。首先剪裁发布的内容可确保您不会无意中仅包含空白的帖子。

while ($loop->have_posts()) : $loop->the_post(); 
    if(trim($post->post_content) !== "") { 
     the_title(); 
     the_content(); 
    }; 
endwhile; 
+0

这应该可以工作,但重复似乎是使用数据库进行过滤(所以效率更高,没有?) – Terminus

+0

可能,但这是我认为的微观优化。即使这意味着牺牲几个时钟周期,我也会更快地拥有更多的可读性。 – maiorano84

+0

我不知道微优化......如果他试图只显示8个帖子,3个在技术上是空白的,他的方法将只显示5个,但另一个答案的方法实际上显示8个。 – Terminus

相关问题