WP_Queryで管理者のみに予約投稿を表示させる【WordPress】

WordPressの予約投稿が多いサイトで、管理者のみ記事一覧に予約投稿も表示させて確認したい。ということでメモ。

手順1:普通にWP_Queryの変数を用意

管理者・それ以外のユーザー共通の条件を指定します。
この時点では予約投稿は一覧に表示されません。

$args = array(
    'post_type' => '投稿タイプ',
    'posts_per_page' => 10,
);

手順2:管理者のみ条件を追加する

関数current_user_canを使い、管理者のみに予約投稿が表示されるよう'post_status'を追加します。

$args = array(
    'post_type' => '投稿タイプ',
    'posts_per_page' => 10,
);
if (current_user_can('administrator')) {
    $args = array_merge($args, array('post_status' => array('publish', 'future')));
}

もとの$argsに、公開済み投稿+予約投稿を表示する配列をarray_mergeで結合させました。

もちろん管理者だけに限らず、用途に合わせて指定可能です。

関連投稿

検索語を上に入力し、 Enter キーを押して検索します。キャンセルするには ESC を押してください。

トップに戻る