ログイン時でも非公開記事を投稿一覧に表示させない方法|WordPress
WordPressの投稿で、記事を非公開に設定していても、
ログインしていると非公開記事も表示されてしまいます。
ユーザーさんには見えていないので問題はないのですが、気になるときに。
ループのなかで非公開記事を非表示にする
▼ ループを記述するphpファイル
<?php
$args = array(
'post_type' => 'post',
'posts_per_page' => 10,
'post_status' => 'publish', //投稿ステータスを公開済に指定
);
$the_query = new WP_Query( $args );
?>
<?php if ( $the_query->have_posts() ) : ?>
<?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
// ループの内容
<?php endwhile; ?>
<?php endif; ?>
5行目のpost_statusをpublishに設定することで、公開済の記事だけをループさせる(=非公開記事を除外する)ことができます。
アーカイブページで非公開記事を非表示にする
▼ functions.php
function custom_posts() {
global $wp_query;
if($wp_query->is_admin) return; // 管理画面では何もしない
if(is_post_type_archive()){ // アーカイブページならば
$wp_query->query_vars['post_status'] = 'publish'; // 投稿ステータスを公開済に指定
}
}
add_filter('pre_get_posts', 'custom_posts');
管理画面で表示されないのは困るので管理画面は除いて、
アーカイブページのときにpost_statusをpublishに設定してあげます。
投稿ステータスについて
投稿ステータスについての解説です。
参考
こちらでお勉強させていただきました。
WordPressの勉強するならこの一冊
私自身、この1冊から始めて今でもずっと見返す一冊です。
リンク