有谁知道如何更改WordPress搜索以按查询变量进行过滤?查询变量是自定义字段。例如,我有一个自定义的帖子类型“书籍”,我希望用户能够根据“book_author”自定义字段进行搜索。
点击搜索按钮后的网址如下所示:
?search_filter=book_author&s=tolkien&post_type=book
非常感谢任何帮助。
答案 0 :(得分:2)
您需要在搜索页面上的PHP代码中执行类似的操作。
$args = array(
'post_type' => 'book',
'order' => 'asc',
'meta_query' => array(
array(
'key' => $_GET['search_filter'],
'value' => $_GET['s'],
'compare' => 'IN',
)
)
);
$loop = new WP_Query( $args );
当然,您可能希望考虑保护代码免受SQL注入等的影响,但这为您提供了创建可以满足您需求的页面的起点。
我建议您阅读有关WP_Query
的更多信息,尤其是关于order by和parameters的部分。