0

我正在处理我在 Wordpress 中创建的目录。该目录以自定义帖子类型的形式存在,称为“agents”,并有自己的分类法,称为“agent_location”。每个代理都在其列表中添加了多个“agent_location”术语。每个 agent_location 术语仅连接到一个“代理”。每个 agent_location 都是英国邮政编码的开头。例如“AB1 1”或“AB11 3”等。

我正在使用 WPAS Wordpress 高级搜索 ( http://wpadvancedsearch.com/ ) 创建搜索表单。我希望最终用户能够输入他们的整个邮政编码,例如 AB1 1AA,并看到包含“AB1 1”一词的代理帖子,而不是列出“AB11 3”的代理帖子。本质上,搜索需要忽略输入的任何搜索的最后 2 位数字。目前我创建的表单如下所示:

function agents_search_form() {
$args = array();
$args['wp_query'] = array('post_type' => 'agents',
                          'posts_per_page' => -1);

$args['fields'][] = array('type' => 'search',
                          'title' => 'Search',
                          'placeholder' => 'Enter search terms...',
                            'pre_html' => '<div class="hiddenField searchRow"><div class="searchWrap">',
                            'post_html' => '</div>');

$args['fields'][] = array( 'type' => 'submit',
                           'class' => 'button',
                           'value' => 'Search' ,
                            'pre_html' => '<div class="searchBTNWrap">',
                            'post_html' => '</div></div>');

$args['fields'][] = array('type' => 'taxonomy',
                          'taxonomy' => 'agent-location',
                          'format' => 'text');


register_wpas_form('agents-form', $args); 
}
 add_action('init', 'agents_search_form');  

当您使用该表格时,只要您不包含邮政编码的最后 2 位数字,它就可以完美运行。如果您输入整个邮政编码,则不会找到搜索结果。 我想帮助创建一个搜索表单,该表单允许用户将他们的整个邮政编码输入到搜索中并仍然得到结果。

我对变通办法的想法持开放态度。请记住:

  • 每个代理商发布的邮政编码遍布英国。没有可以工作的中心位置,因此“半径”地图搜索不起作用。
  • 如果有帮助,我很乐意将分类法直接作为自定义字段移入帖子
  • 该网站已经上线,所以我不想重新创建整个东西,但如果它得到我想要的结果,我很乐意编写新的解决方案或使用插件。该网站目前使用 Gravity forms、WPAS、Beaver Builder 和 ACF pro。
  • 大部分网站访问者是盲人或部分视力,因此解决方案必须是“屏幕阅读器友好的”

提前致谢

4

1 回答 1

0

我最终使用了 Relevanssi 插件 - https://wordpress.org/plugins/relevanssi/并将其与 WPadvancedsearch 结合使用,它实际上可以很好地协同工作,让我做我需要的一切。

于 2019-03-24T15:49:37.643 回答