我想修改搜索,所以如果说我有分类法被称为“作家”和“伊恩·兰金”的字词加入后,如果我搜索“伊恩·兰金”,我想这个职位上来。 我猜它只搜索标题和内容的时刻。 我怎样才能使搜索方面呢?
Answer 1:
您可以使用过滤器钩子加入分类表改变了搜索查询。
例如,同时搜索的“作者”分类
首先加入分类表
function tax_search_join( $join )
{
global $wpdb;
if( is_search() )
{
$join .= "
INNER JOIN
{$wpdb->term_relationships} ON {$wpdb->posts}.ID = {$wpdb->term_relationships}.object_id
INNER JOIN
{$wpdb->term_taxonomy} ON {$wpdb->term_taxonomy}.term_taxonomy_id = {$wpdb->term_relationships}.term_taxonomy_id
INNER JOIN
{$wpdb->terms} ON {$wpdb->terms}.term_id = {$wpdb->term_taxonomy}.term_id
";
}
return $join;
}
add_filter('posts_join', 'tax_search_join');
然后找到在分类学“作者”搜索词
function tax_search_where( $where )
{
global $wpdb;
if( is_search() )
{
// add the search term to the query
$where .= " OR
(
{$wpdb->term_taxonomy}.taxonomy LIKE 'author'
AND
{$wpdb->terms}.name LIKE ('%".$wpdb->escape( get_query_var('s') )."%')
) ";
}
return $where;
}
add_filter('posts_where', 'tax_search_where');
最后组的结果通过邮寄标识,以免因加入重复结果
function tax_search_groupby( $groupby )
{
global $wpdb;
if( is_search() )
{
$groupby = "{$wpdb->posts}.ID";
}
return $groupby;
}
add_filter('posts_groupby', 'tax_search_groupby');
文章来源: How to amend wordpress search so it queries taxonomy terms and category terms?