web-dev-qa-db-ja.com

作成者または現在のユーザーに投稿が公開されているかどうかを確認します

私はQUIZシステムをやっています、しかし私はそれをどのように修正するか分からない問題に直面しています。

私は基本的にifを作る必要があります。そこで質問のタイトルとして現在のユーザが投稿を公開しているかどうかをチェックします。 posts は特に custom-post-type であると言うことが重要です。そのため、author-idが現在のユーザーと等しい特定の投稿タイプの投稿があるかどうかをチェックする必要がありますID.

誰かが私を手伝ってくれる?

1
Claudio B.

同様の$ argsでget_postsまたはWP_queryを使用する:

$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.";
}
0
dalv lexa

これに飛び込むと、count_user_posts( $userid , $post_type )がより良い解決策であることがわかりました。それはget_posts()よりも短く、またリソースも安いです。

だからここにそれは:

$posts = count_user_posts( $user_id ); //cout user's posts
if( $posts > 0 ){
  //user has posts
}
2
Ituk