現在のユーザーによるすべての投稿を表示する必要があるフロントエンドダッシュボードを作成しています。だから、私はすべての州、主にpublished
、trashed
、pending
で投稿を表示する必要があります。私は今簡単なクエリを使用していますが、公開された投稿のみを返しています。
$query = array(
'post_type' => 'my-post-type',
'post_author' => $current_user->ID
);
query_posts($query);
誰も手伝ってくれる?他に何をする必要がありますか?
Post_statusパラメータを使用できます。
* 'publish' - a published post or page
* 'pending' - post is pending review
* 'draft' - a post in draft status
* 'auto-draft' - a newly created post, with no content
* 'future' - a post to publish in the future
* 'private' - not visible to users who are not logged in
* 'inherit' - a revision. see get_children.
* 'trash' - post is in trashbin. added with Version 2.9.
私はそれが 'any'を受け入れるかどうかわからないので、あなたが望むすべての型を使って配列してください:
$query = array(
'post_type' => 'my-post-type',
'post_author' => $current_user->ID,
'post_status' => array('publish', 'pending', 'draft', 'auto-draft', 'future', 'private', 'inherit', 'trash')
);
$loop = new WP_Query($query);
while ( $loop->have_posts() ) : $loop->the_post();
WP_Query
クラス・メソッド->query()
は、post_status
に対してany
引数を受け入れます。証明については wp_get_associated_nav_menu_items()
を参照してください。
同じことがget_posts()
にも言えます(これは上記の呼び出しのラッパーです)。
簡単な方法、どのようなステータスの投稿をすべて取得するかがあります。
$articles = get_posts(
array(
'numberposts' => -1,
'post_status' => 'any',
'post_type' => get_post_types('', 'names'),
)
);
今、あなたはすべての記事を通して繰り返すことができます:
foreach ($articles as $article) {
echo $article->ID . PHP_EOL; //...
}
ほとんどの場合、get_posts()
を'any'
パラメーターと一緒に使用できます。
$posts = get_posts(
array(
'numberposts' => -1,
'post_status' => 'any',
'post_type' => 'my-post-type',
)
);
ただし、この方法では、ステータスがtrash
およびauto-draft
の投稿を取得できません。次のように、明示的に提供する必要があります。
$posts = get_posts(
array(
'numberposts' => -1,
'post_status' => 'any, trash, auto-draft',
'post_type' => 'my-post-type',
)
);
または、get_post_stati()関数を使用して、既存のすべてのステータスを明示的に提供できます。
$posts = get_posts(
array(
'numberposts' => -1,
'post_status' => get_post_stati(),
'post_type' => 'my-post-type',
)
);
あなたがany
をpost_status
として渡したとしても、あなたは 結果の中でポストを得ることはできません 以下のすべての条件が当てはまる場合:/
name
、つまりスラッグによる照会があります。 明示的に すべてのステータスについて問い合わせます。たとえば、trash
またはauto-draft
ではないstatiを照会するには(これらを使用することはほとんど考えられません)、次のようにします。
$q = new WP_Query([
/* ... */
'post_status' => get_post_stati(['exclude_from_search' => false]),
]);