在 wordpress 中搜索和过滤帖子

问题描述 投票:0回答:1

我在我的网站上使用了 ACF 字段,我在网站上创建了一个表单,我希望它除了帖子标题和文本之外还可以搜索所需的字段。例如,用户在表单中选择年份或国家,然后发送表单,仅显示与该年份或国家相关的帖子。

我应该如何更改默认的 WordPress 搜索?

是否有用于使用自定义字段搜索来搜索帖子的代码字符串?

I tried many plugins, but none of them worked for me. I am looking for a query string that will receive my desired data and return the result 
wordpress search advanced-custom-fields acfpro
1个回答
0
投票

是的,可以修改默认的 WordPress 搜索以包括自定义字段,例如 ACF 字段。一种方法是使用 pre_get_posts 操作挂钩在执行之前修改搜索查询。

function custom_search_query($query) {
    if (!is_admin() && $query->is_search) {
        $meta_query = array();
        $acf_fields = array('year', 'country'); // replace with your ACF field names
        foreach ($acf_fields as $field) {
            $value = get_query_var($field);
            if (!empty($value)) {
                $meta_query[] = array(
                    'key' => $field,
                    'value' => $value,
                    'compare' => '=',
                );
            }
        }
        $query->set('meta_query', $meta_query);
    }
}
add_action('pre_get_posts', 'custom_search_query');

您可以修改此代码以适合您特定的 ACF 字段名称和搜索要求。将此代码放在主题的 functions.php 文件或自定义插件中。

© www.soinside.com 2019 - 2024. All rights reserved.