Php Wordpress搜索结果按优先级显示(首先按标题显示帖子)
我为自定义搜索实现了几个搜索过滤器。所以现在我有了 按标题和自定义字段获取帖子的搜索函数。但是 返回的结果显示为随机 我想先按标题显示搜索结果,然后按自定义显示 场 有办法吗 搜索效果很好,只需按优先级显示即可。这是 我的搜索代码Php Wordpress搜索结果按优先级显示(首先按标题显示帖子),php,mysql,wordpress,Php,Mysql,Wordpress,我为自定义搜索实现了几个搜索过滤器。所以现在我有了 按标题和自定义字段获取帖子的搜索函数。但是 返回的结果显示为随机 我想先按标题显示搜索结果,然后按自定义显示 场 有办法吗 搜索效果很好,只需按优先级显示即可。这是 我的搜索代码 您的帖子只显示为随机的,因为在这一行{$wpdb->prefix}posts.ID ASC中,您还可以按ID对它们进行排序,请尝试删除此帖子并仅按帖子类型对它们进行排序 如果上述方法不起作用,只需编写自己的普通SQL查询并执行它。 另一个重要注意事项:$wpdb->e
您的帖子只显示为随机的,因为在这一行
{$wpdb->prefix}posts.ID ASC
中,您还可以按ID
对它们进行排序,请尝试删除此帖子并仅按帖子类型对它们进行排序
如果上述方法不起作用,只需编写自己的普通SQL查询并执行它。
另一个重要注意事项:$wpdb->escape()
函数已弃用,请尝试使用$wpdb->prepare()
以防止SQL注入
仅举例子:
$wpdb->query($wpdb->prepare("
SELECT $wpdb->posts
INNER JOIN $wpdb->postmeta ON $wpdb->posts.ID = $wpdb->postmeta.post_id
WHERE 1 = 1
AND $wpdb->postmeta.meta_key = %s
AND $wpdb->postmeta.meta_value LIKE %s
ORDER BY $wpdb->posts.post_type DESC
",
'_recipe_incredients', '%'.get_query_var('s').'%')
);
有关详细信息,请参阅
$wpdb->query($wpdb->prepare("
SELECT $wpdb->posts
INNER JOIN $wpdb->postmeta ON $wpdb->posts.ID = $wpdb->postmeta.post_id
WHERE 1 = 1
AND $wpdb->postmeta.meta_key = %s
AND $wpdb->postmeta.meta_value LIKE %s
ORDER BY $wpdb->posts.post_type DESC
",
'_recipe_incredients', '%'.get_query_var('s').'%')
);