Почему get_posts () возвращает пустой набор?

Я пишу настраиваемый плагин, который инициализируется в init . Этот плагин пытается запросить некоторые пользовательские типы сообщений, уже сохраненные в БД.

Вот мой код:

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

Независимо от того, какие аргументы я передаю в массив $ args, я ничего не получаю. Например:

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

Теперь, к моему get_pages() если я использую те же самые аргументы с get_pages() я получаю результат.

Может быть, это связано с тем, когда WP Query инициализируется?

Кажется, это была простая проблема. get_posts () имеет различные настройки по умолчанию, одним из которых является то, что post_status устанавливается в public а мой пользовательский тип сообщения, который не использует post_status использовал значение по умолчанию, draft .

Чтобы исправить это, вы можете либо запросить статус публикации (см. Код ниже), либо изменить данные в БД.

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

get_posts() больше используется в Loop.

но чтобы заставить это работать за пределами цикла, попробуйте поместить global $post; сначала наверху …

 global $post; $args = array( 'post_type' => 'page' ); $myposts = get_posts($args);