WordPress
WordPress 記事一覧から非公開記事を除外する方法
最終更新日 - 公開日 2019.12.25
by
WordPress で記事一覧から非公開記事を除外する方法を紹介します。
例えば、クライアントから「非公開記事が表示されて紛らわしい!」と、言われた時に便利な方法です。
非公開記事を除外する方法
投稿に非公開記事があると、ログイン中の記事一覧には非公開記事が表示されてしまいます。
非公開記事を非表示にするには、クエリをカスタマイズして公開済みの記事のみを表示するようにします。
例えば、アーカイブページ一覧から非公開記事を除外するには、function.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(公開済)を指定します。
カスタム投稿タイプのアーカイブのみ指定したい場合などは、is_post_type_archive(‘example’) などと指定してください。
他の条件で記事を除外する場合3>
非公開記事以外のスーテータスで記事を除外する場合は以下の表を参照してください。
- 公開済
- publish
- 予約済
- future
- 下書き
- draft
- 承認待ち
- pending
- 非公開
- private
- ゴミ箱
- trash
- 自動保存
- auto-draft
- 継承
- inherit
まとめ
WordPress で記事一覧から非公開記事を除外する方法を紹介しました。