如何在自定义字段和自定义分类中进行搜索以进行自定义搜索

时间:2011-07-19 作者:Lee

我有一个自定义搜索,它是一个提交到同一页面的表单,并使用wp\\u query筛选某个职位网站的结果,我还希望关键字搜索也在自定义字段和自定义分类中搜索,但我不确定如何使用posts\\u join来完成此操作。

我想允许用户在关键字框中键入参考号,并在所有自定义字段和自定义分类中进行搜索,但不过滤结果,因为它们并不总是匹配。因此,如果我搜索某个技能,我不希望它在不匹配技能自定义字段的情况下返回结果,因为关键字可能位于主描述中

这有意义吗?

更新:我发现以下代码:Include custom taxonomy term in search

但由于某种原因,它不能正常工作,而不是返回11个结果,它显示了114个结果,所以有些东西不太正确,它正在自定义分类法中搜索,所以这是一个起点。

我只需要它来搜索自定义分类法和自定义字段,但要确定结果的数量

2 个回复
最合适的回答,由SO网友:Lee 整理而成

通过修改我发布的链接中的代码,设法解决了这个问题:

function atom_search_where($where){
global $wpdb;
if($_SESSION[\'js\'] != \'\')
$where .= "OR (t.name LIKE \'%".trim($_SESSION[\'js\'])."%\' AND {$wpdb-    >posts}.post_status = \'publish\')";
$where .= "OR ($wpdb->postmeta.meta_key = \'_job_ref\' AND $wpdb->postmeta.meta_value = \'".$_SESSION[\'js\']."\')";
return $where;
}

function atom_search_join($join){
global $wpdb;
if($_SESSION[\'js\'] != \'\')
$join .= "LEFT JOIN {$wpdb->term_relationships} tr ON {$wpdb->posts}.ID = tr.object_id INNER JOIN {$wpdb->term_taxonomy} tt ON tt.term_taxonomy_id=tr.term_taxonomy_id INNER JOIN {$wpdb->terms} t ON t.term_id = tt.term_id";
$join .= "LEFT JOIN $wpdb->postmeta ON ($wpdb->posts.ID = $wpdb->postmeta.post_id)";
return $join;
}

SO网友:kevin

看看这个插件:Search Everything

结束

相关推荐

Custom post_type search pages

因此,我的网站上有一个专门搜索YouTube视频自定义帖子类型的部分。我完全可以搜索自定义类型。然而,我不确定如何创建一个具有针对这种类型搜索的自定义格式的搜索页面。我在youtube上创建了一个自定义循环。php并在搜索中修改。phpget_template_part( \'loop\'); 到get_template_part( \'loop\', \'youtube\'); 但是,它会全局影响搜索结果。是否有创建自定义搜索的方法。特定post\\u类型的php页面?谢谢你的帮助。