如何获取内容为空的帖子列表

时间:2017-08-02 作者:metalbug

我列出两个主题

这些帖子以图片和标题为特色,但内容空洞。我想得到这份清单。

以及其他包含内容列表的帖子。

我不知道,请帮帮我

    $args = array(
    \'post_type\' => \'post\',
    \'post_status\' => array(\'publish\', \'pending\', \'draft\', \'auto-draft\', \'future\', \'private\', \'inherit\', \'trash\')    
    \'posts_per_page\' => -1,
    \'orderby\' => \'ID\',
    \'order\' => \'desc\');

$blank_posts = array();

$posts = new WP_Query( $args );

if ( $posts->have_posts() ) : 
    while ( $posts->have_posts() ) : $post = $posts->the_post();
       $content = get_the_content();
        if(empty($content)) { 
            array_push( $blank_posts, $post);
        }
    endwhile;
endif;

/* print all blank content posts */
print_r($blank_posts);
这个代码不起作用,请给我一些详细的代码,谢谢

2 个回复
最合适的回答,由SO网友:Jignesh Patel 整理而成

您的代码:

$content = get_the_content();
        if(empty($content)) {...}
您可以将代码替换为:

if ($posts->post_content == \'\'){...}
这不是测试,只是尝试一下,我希望有用。

编辑

请尝试此代码。

$args = array(
    \'post_type\' => \'post\',
    \'post_status\' => array(\'publish\', \'pending\', \'draft\', \'auto-draft\', \'future\', \'private\', \'inherit\', \'trash\'),
    \'posts_per_page\' => -1,
    \'orderby\' => \'ID\',
    \'order\' => \'desc\');

$blank_posts = array();
$content_post =array();

$posts = new WP_Query( $args );

if ( $posts->have_posts() ) : 
    while ( $posts->have_posts() ) : $posts->the_post();
    global $post;
       $content = get_the_content();
        if(empty($content)) { 
            array_push( $blank_posts, $post);
        }else{
            array_push( $content_post, $post);
        }
    endwhile;
endif;
/* print all blank content posts */
var_dump($blank_posts);
var_dump($content_post);

if(!empty($blank_posts)){
    foreach ($blank_posts as $pst) {
        echo "ID= ". $pst->ID . \' : \'. "Title= ". $pst->post_title .\'<hr />\';
    }
}

SO网友:Johansson

您应该直接获取内容字段,并通过自定义函数进行检查。

我给你写了一个简单的例子:

function check_empty_content($post_id) {
    $str = apply_filters( \'the_content\', get_post_field( \'post_content\', $post_id ) );
    return trim( str_replace( \'&nbsp;\', \'\', strip_tags($str) ) ) == \'\';
}
现在您可以使用此函数代替empty().

结束