Я испробовал несколько методов, но я не могу отфильтровать пользовательские post_types
из результатов поиска и надеялся, что кто-то может помочь.
Я установил «Диспетчер заданий» и создал 4 задания, которые имеют пользовательский post_type = 'jobman_job'
Я попытался создать форму ручного поиска и установить скрытое значение post_type = jobman_job
, но он все равно вернул все сообщения.
<form role="search" method="get" id="searchform" action="<?php echo home_url( '/' ); ?>">
<input type="text" name="s" id="s" value=""/>
<input type="hidden" name="post_type" value="jobman_job" />
<input type="submit" id="searchsubmit" value="Search" />
</form>
Затем я попытался создать пользовательскую страницу поиска и перенаправить поиск на эту страницу следующим образом (т.е. добавил page_id
скрытое поле):
<form role="search" method="get" id="searchform" action="<?php echo home_url( '/' ); ?>">
<input type="text" name="s" id="s" value=""/>
<input type="hidden" name="page_id" value="123" />
<input type="hidden" name="post_type" value="jobman_job" />
<input type="submit" id="searchsubmit" value="Search" />
</form>
А затем на странице пользовательского поиска я добавил следующий код (согласно руководству по wordpress - http://codex.wordpress.org/Creating_a_Search_Page) и добавил post_type
из jobman_job
в массив запросов:
global $query_string;
$query_args = explode("&", $query_string);
$search_query = array('post_type' => 'jobman_job');
foreach($query_args as $key => $string) {
$query_split = explode("=", $string);
$search_query[$query_split[0]] = urldecode($query_split[1]);
} // foreach
$search = new WP_Query($search_query);
И все равно отображаются все сообщения ...
Что я делаю не так? Я проверил столбец post_type
в таблице wp_posts
и у меня есть 4 уникальные записи ... поэтому они есть ...
Есть ли понимание?