WP_Query
ユーザーがログインしている場合、ステータスが のすべての投稿を返すために使用できることはわかっていますが、ログインしprivate
ていないユーザーに対してこれを行う方法がわかりませんか?
EG: ログインしているユーザーの場合...
$query = new WP_Query( 'post_status=private' );
しかし、ログインしていないユーザーに対してはどうすればよいでしょうか?
WP_Query
ユーザーがログインしている場合、ステータスが のすべての投稿を返すために使用できることはわかっていますが、ログインしprivate
ていないユーザーに対してこれを行う方法がわかりませんか?
EG: ログインしているユーザーの場合...
$query = new WP_Query( 'post_status=private' );
しかし、ログインしていないユーザーに対してはどうすればよいでしょうか?
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;
}
ゲストユーザーを作成できます。現在のユーザーがログインしていない場合は、コードを使用してゲストとしてログインします...クエリは機能します。
ソリューションを構築するときに、グループと権限を確認する必要があります。また、最後に考慮すべきことは、ゲスト ユーザーが実際のユーザーとしてログインできるように、ログイン画面を表示する方法です。