web-dev-qa-db-ja.com

Get_posts()が空のセットを返すのはなぜですか?

私はinitで初期化されるカスタムプラグインを書いています。このプラグインは、すでにDBに格納されているいくつかのカスタム投稿タイプを照会しようとしています。

これが私のコードです:

$args = array()
$myposts = get_posts( $args );  
print_r($myposts);

どんな引数を$ args配列に渡しても、何も得られません。例えば:

$args = array( 'post_type' => 'page' );

さて、私がget_pages()と全く同じ引数を使用すると私は混乱しますが結果が得られます。

たぶんこれはWP Queryが初期化されるときに何か関係がありますか?

4
BFTrick

それは単純な問題だったようです。 get_posts() にはさまざまなデフォルト設定がありますが、そのうちの1つはpost_statuspublicに設定され、post_statusを使用しないカスタム投稿タイプはデフォルト値のdraftを使用するというものです。

これを修正するには、投稿ステータスで照会するか(以下のコードを参照)、またはDB内のデータを変更します。

$args = array(
    'post_status' => 'draft',
    'post_type'   => 'your_custom_post_type'
);
5
BFTrick