gpt4 book ai didi

php - 如何修改wordpress搜索以查询分类术语和类别术语?

转载 作者:行者123 更新时间:2023-12-03 22:56:25 25 4
gpt4 key购买 nike

我想修改搜索,所以如果说我有一个名为“作者”的分类法并在帖子中添加了“Ian Rankin”的术语,如果我搜索“Ian Rankin”,我希望该帖子出现。我想目前它只搜索标题和内容。 我怎样才能让它成为搜索词?

最佳答案

您可以使用过滤器 Hook 更改搜索查询以连接分类表。

例如还可以搜索“作者”分类法

首先加入分类表

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');

最后按post id对结果进行分组,以避免由于连接而导致重复结果
function tax_search_groupby( $groupby )
{
global $wpdb;
if( is_search() )
{
$groupby = "{$wpdb->posts}.ID";
}
return $groupby;
}
add_filter('posts_groupby', 'tax_search_groupby');

关于php - 如何修改wordpress搜索以查询分类术语和类别术语?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13491828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com