检查作者或当前用户是否发布了帖子

时间:2016-10-27 作者:Claudio Bonfati

我正在做一个测验系统,但我面临一个我不知道如何解决的问题。

我需要做一个if 基本上,它将检查当前用户是否发布了帖子,作为问题标题。重要的是posts 是专门的custom-post-type, 因此,我需要检查是否有一篇文章的作者id等于当前用户id的特定文章类型。

有人能帮我吗?

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

使用具有类似$参数的get\\U posts或WP\\U查询:

$args = array(
    \'post_type\'  => \'your_custom_post_type\',
    \'author\'     => get_current_user_id(),
);

$wp_posts = get_posts($args);

if (count($wp_posts)) {
    echo "Yes, the current user has \'your_custom_post_type\' posts published!";
} else {
    echo "No, the current user does not have \'your_custom_post_type\' posts published.";
}

SO网友:Ituk

潜入其中我发现count_user_posts() 是一个更好的解决方案。它比get_posts();

这就是:

$user_id = get_current_user_id(); //the logged in user\'s id
$post_type = \'your-post-type-here\';
$posts = count_user_posts( $user_id, $post_type ); //cout user\'s posts
if( $posts > 0 ){
  //user has posts
}

相关推荐

Get_the_Author_meta()和Get_User_meta()有什么不同?

我有个问题:get_the_author_meta() 返回元get_user_meta() 对于相同的元键返回false,我不知道为什么会发生这种情况。关于用户元数据,我应该何时使用其中一种?I tried this:get_the_author_meta(\'afzfp_user_status\', $user->ID); get_user_meta(\'afzfp_user_status\', $user->ID, true); It returns:String \"t