WordPress按自定义字段搜索过滤器

时间:2014-03-23 18:02:18

标签: php wordpress custom-fields advanced-custom-fields

有谁知道如何更改WordPress搜索以按查询变量进行过滤?查询变量是自定义字段。例如,我有一个自定义的帖子类型“书籍”,我希望用户能够根据“book_author”自定义字段进行搜索。

点击搜索按钮后的网址如下所示:

?search_filter=book_author&s=tolkien&post_type=book

非常感谢任何帮助。

1 个答案:

答案 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的部分。