WordPressで投稿一覧から非公開の記事を除外する方法

WordPressの投稿記事の一覧から、「非公開」状態の記事を除外して非表示にする方法の備忘録です。

管理画面へログインしている時は、投稿一覧に「非公開」状態の記事も表示されてしまいます。

「非公開:」が表示されてしまう記事を一覧から除外します。

非公開記事を除外する

投稿一覧から非公開記事を除外したい場合は、ループのクエリに条件を追加します。

<?php
  $args = array(
    'post_type' => 'post',
    'post_status' => 'publish',
    'posts_per_page' => 3
  );
  $the_query = new WP_Query($args);
  if($the_query->have_posts()):
?>
<ul>
<?php while ($the_query->have_posts()): $the_query->the_post(); ?>
<li><?php echo get_the_date(); ?><?php echo get_the_title(); ?></li>
<?php endwhile; ?>
</ul>
<?php wp_reset_postdata(); ?>
<?php endif; ?>

配列$argsで設定した条件の投稿記事をwhileのループで表示しています。

配列のpost_statusに「publish」を指定することで、「公開済」ステータスの記事のみを取得しています。

他の条件で記事を除外する

非公開以外のステータスを設定したい場合、以下の値を使用します。

  • 公開済 … publish
  • 予約済 … future
  • 下書き … draft
  • 承認待ち … pending
  • 非公開 … private
  • ゴミ箱 … trash
  • 自動保存 … auto-draft
  • 継承 … inherit

例えば、「承認待ち」の投稿記事のみを一覧表示したい場合は、post_statusに「pending」を指定します。

Share on
関連記事
WordPressのテンプレートで404エラーページを作成する
WordPressのテンプレートで404エラーページを作成する
Snow Monkey Formsの確認画面で一部のテキストを非表示にする方法
Snow Monkey Formsの確認画面で一部のテキストを非表示にする方法
WordPressプラグインBreadcrumb NavXTでパンくずリストを表示する方法
WordPressプラグインBreadcrumb NavXTでパンくずリストを表示する方法