在wp_Query中排除post_content为空的帖子

时间:2017-01-05 作者:snuwie

是否可以从wp\\U查询中排除包含空帖子内容的帖子?

$args = array(
    \'post_type\' => array(\'post\'),
    \'posts_per_page\' => 5,
    \'post_status\' => \'publish\',
);

$query = new WP_Query($args);
$posts = $query->posts;

foreach($posts as $post) {
    var_dump($post->post_content);
}
在循环内进行if($post->post_content !== \'\') { } 不是选项。因为我的列表不会有5个项目。

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

这在标准WP查询中是不可能的,您必须利用posts_whereWP_Query 被调用。

function the_dramatist_filter_where($where = \'\'){
    $where .= " AND trim(coalesce(post_content, \'\')) <>\'\'";
    return $where;
}
在上面,我们只是简单地选择列post_content 不是空的。

然后添加过滤器。

add_filter(\'posts_where\', \'the_dramatist_filter_where\');
现在执行查询。

$query = new WP_Query(array(\'post_type\' => \'post\', \'posts_per_page\' => 8));
完成后,从查询中删除过滤器,这样它就不会干扰查询。

remove_filter(\'posts_where\', \'the_dramatist_filter_where\');

相关推荐

JqueryUi对话框给出未捕获的TypeError:This._addClass不是函数错误

我有一个网站,我们需要一些自定义php编码来连接到外部数据库,以获取几个销售我们产品的供应商的产品评论URL。我们试图实现的基本想法是让用户注册他们的产品,然后如果他们愿意留下评论,就延长保修期。我正在使用XYZScript。com的“插入PHP”插件来实现这一点。该主题最初只加载了jQuery,以避免创建子主题,我们正在php脚本中加载jQueryUI。因此,我们将jQuery加载到文档的标题中,将jQueryUI加载到文档的正文中。我不太确定这是因为加载脚本的顺序造成的,还是其他一些冲突的javasc