wp_query не возвращает мой пользовательский пост

Я использую эти вспомогательные классы для создания настраиваемого сообщения, но wp_query не возвращает никаких экземпляров. Проверьте источник и насколько я вижу, что публика была установлена ​​в true.

Запрос следующий:

$numFetch=$multiple?100:1; $args = array( 'posts_per_page' => $numFetch, 'search_post_title' => $data_source_name, 'post-type' => 'any', 'orderby' => 'title', 'order' => 'ASC' ); $args['search_post_title'] = $multiple? '.post_title LIKE \'' . esc_sql(like_escape($data_source_name)) . '%\'': '.post_title = \'' . esc_sql(like_escape($data_source_name)) . '\''; add_filter('posts_where', 'title_filter', 10, 2); $loop = new WP_Query($args); while ($loop->have_posts()) : $loop->the_post(); var_dump($post); endwhile; 

В funcitons.php у меня есть

 function title_filter($where, &$wp_query) { global $wpdb; if ($search_term = $wp_query->get('search_post_title')) { $where .= ' AND ' . $wpdb->posts . $search_term; } return $where; } 

Когда я добавляю сообщение с тем же названием, оно появляется. Я попытаюсь вручную создать пользовательский пост и посмотреть, появляется ли это (оставляя общедоступным значение по умолчанию true), но не уверен, что это проблема. Я бы хотел, чтобы он не появлялся в поиске в любом случае, если я не укажу его, но не смог найти способ сделать это (например, 'exclude_from_search'=>true )

[ОБНОВИТЬ]

 Added the following code in functions.php: function codex_custom_init() { $args = array( 'public' => true, 'label' => 'Books' ); register_post_type( 'book', $args ); } add_action( 'init', 'codex_custom_init' ); 

Затем добавлена ​​книга с названием: «книга», а затем изменился код запроса на:

 $args['search_post_title'] = '.post_title LIKE \'%a book%\''; 

Но никакие предметы не возвращаются.

Если я добавлю сообщение с названием «книга», то он появится. Похоже, что 'post-type' => 'any' не делает то, что он должен делать.

Solutions Collecting From Web of "wp_query не возвращает мой пользовательский пост"

Просто потратил еще час, пытаясь отладить что-то, потому что клавиша смены на моей клавиатуре не всегда работает.

 post-type != post_type 

Должен быть балл между столбцом и типом, а не дефис.

Попробуйте добавить это и посмотреть, работает ли он:

 function filter_search( $query ) { if ( $query->is_search ) { $query->set('post_type', array('book')); }; return $query; }; add_filter( 'pre_get_posts', 'filter_search' );