获取用户发布的帖子数量(草稿、待审和发布)

时间:2016-06-13 作者:Futaba Panda

我正在尝试获取用户发布的帖子数量,包括所有帖子状态(草稿、待审核和已发布)。

这将用于规则。如果用户的X 文章类型上的文章数量,他们将看到自定义文本。

找到以下内容,但仅统计已发布的帖子。

$userID = get_current_user_id();
echo \'Number of posts published by user: \' . count_user_posts( $userID , "books"  );

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

查询帖子、迭代结果和处理帖子状态听起来非常简单。。只需确保添加\'post_status\' => \'any\' 添加到查询参数,以便在已发布的旁边包含更多状态:

$args = array(
    \'author\' => 1, // user ID here
    \'posts_per_page\' => -1, // retrieve all
    \'post_type\' => \'post\', // post type (change to your PT)
    \'post_status\' => \'any\' // any status
);

$posts = get_posts( $args );

$drafts = $pendings = $published = array();

if ( ! empty( $posts ) ) :;

    foreach ( $posts as $post ) {
        switch ( $post->post_status ) {
            case \'draft\':
                $drafts[] = $post;
                break;
            case \'pending\':
                $pendings[] = $post;
                break;
            case \'published\':
                $published[] = $post;
                break;
            default:
                break;
        }
    }

endif;

echo var_dump( \'drafts\', $drafts, \'pending\', $pendings, \'published\', $published ); // or print_r
希望这有帮助。

这将用于规则。如果用户在某个帖子类型上的帖子数量大于或等于X,他们将看到自定义文本。

用法示例:if ( count( $drafts ) >= (int) X ) { # Hey!! }

相关推荐