Исключить пользовательский тип сообщения из конфликта поиска с помощью get_posts

Я хочу скрыть свой пользовательский тип сообщения от результатов поиска. Итак, я выполнил код и использовал:

exclude_from_search => 'true' при регистрации моего настраиваемого типа сообщений.

Это скрывает пользовательский тип сообщения, и он больше не отображается в результатах поиска.

Но теперь я не могу загружать сообщения, используя get_posts но они выглядят отлично с WP_Query . Интересно, почему это происходит.

Solutions Collecting From Web of "Исключить пользовательский тип сообщения из конфликта поиска с помощью get_posts"

get_posts() использует WP_Query , поэтому вы, вероятно, предоставляете неправильные аргументы, стоит упомянуть, что функция имеет некоторые аргументы по умолчанию .

Это должно получить все сообщения CPT myCPT :

 $args = array( 'posts_per_page' => -1, 'post_type' => 'myCPT', 'post_status' => 'any', ); $posts_array = get_posts( $args ); ?> 

Можете ли вы попробовать этот код?

 function excludePages($query) { if ($query->is_search) { $query->set('post_type', 'post'); } return $query; } add_filter('pre_get_posts','excludePages');