我尝试了几种方法,但似乎无法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
of添加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 个唯一条目......所以它们在那里......
任何见解?