0

WP_Queryユーザーログインしている場合、ステータスが のすべての投稿を返すために使用できることはわかっていますが、ログインしprivateていないユーザーに対してこれを行う方法がわかりませんか?

EG: ログインしているユーザーの場合...

$query = new WP_Query( 'post_status=private' );

しかし、ログインしていないユーザーに対してはどうすればよいでしょうか?

4

2 に答える 2

1

posts_clauses次のように filter を使用できます。

add_filter( 'posts_clauses', 'wpse70214_posts_clauses' );

function wpse70214_posts_clauses( $pieces )
{
    global $wpdb;
    if( !is_user_logged_in() )
        $pieces['where'] = str_replace( 
            "post_status = 'publish')", 
            "post_status = 'publish' OR $wpdb->posts.post_status = 'private') ",
            $pieces['where']
        );

    return $pieces;
}
于 2013-10-03T12:02:52.960 に答える
0

ゲストユーザーを作成できます。現在のユーザーがログインしていない場合は、コードを使用してゲストとしてログインします...クエリは機能します。

ソリューションを構築するときに、グループと権限を確認する必要があります。また、最後に考慮すべきことは、ゲスト ユーザーが実際のユーザーとしてログインできるように、ログイン画面を表示する方法です。

于 2013-10-03T11:37:48.703 に答える