基于分类法的 similar/partial 结果的 Wordpress 搜索
Wordpress search with similar/partial results based on taxonomy
我正在处理我在 Wordpress 中创建的目录。该目录以名为 "agents" 的自定义 post 类型存在,并有自己的分类法 "agent_location"。
每个代理都有多个 "agent_location" 个条款添加到他们的列表中。
每个 agent_location 术语仅与一个 "agent" 相关。
每个 agent_location 都是英国 post 代码的开头。例如 "AB1 1" 或 "AB11 3" 等
我正在使用 WPAS Wordpress 高级搜索 (http://wpadvancedsearch.com/) 创建搜索表单。我希望最终用户能够键入他们的整个 post 代码,例如 AB1 1AA,并向代理 post 展示术语 "AB1 1" 而不是代理 post 列出了 "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');
如果您不包含 post 代码的最后 2 位数字,当您使用该表格时,它会完美运行。如果您输入完整的 post 代码,将找不到任何搜索结果。
我想帮助创建一个搜索表单,允许用户将他们的整个 post代码输入到搜索中并仍然得到结果。
我愿意接受解决方法的想法。请记住:
- 每个代理 post 列出的 post 代码遍布英国各地。没有可以工作的中心位置,因此 "radius" 地图搜索将不起作用。
- 如果有帮助,我很乐意将分类法作为自定义字段直接移至 post
- 该网站已经上线,所以我不想重新创建整个网站,但我很乐意编写新的解决方案或使用插件,如果它能获得我想要的结果。该网站目前使用Gravity forms、WPAS、Beaver Builder和ACF pro。
- 很大一部分网站访问者是盲人或弱视者,因此解决方案必须 "screen reader friendly"
提前致谢
我最终使用了 Relevanssi 插件 - https://wordpress.org/plugins/relevanssi/ 并将其与 WPadvancedsearch 结合使用,它实际上可以很好地协同工作,让我可以做我需要的一切。
我正在处理我在 Wordpress 中创建的目录。该目录以名为 "agents" 的自定义 post 类型存在,并有自己的分类法 "agent_location"。 每个代理都有多个 "agent_location" 个条款添加到他们的列表中。 每个 agent_location 术语仅与一个 "agent" 相关。 每个 agent_location 都是英国 post 代码的开头。例如 "AB1 1" 或 "AB11 3" 等
我正在使用 WPAS Wordpress 高级搜索 (http://wpadvancedsearch.com/) 创建搜索表单。我希望最终用户能够键入他们的整个 post 代码,例如 AB1 1AA,并向代理 post 展示术语 "AB1 1" 而不是代理 post 列出了 "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');
如果您不包含 post 代码的最后 2 位数字,当您使用该表格时,它会完美运行。如果您输入完整的 post 代码,将找不到任何搜索结果。 我想帮助创建一个搜索表单,允许用户将他们的整个 post代码输入到搜索中并仍然得到结果。
我愿意接受解决方法的想法。请记住:
- 每个代理 post 列出的 post 代码遍布英国各地。没有可以工作的中心位置,因此 "radius" 地图搜索将不起作用。
- 如果有帮助,我很乐意将分类法作为自定义字段直接移至 post
- 该网站已经上线,所以我不想重新创建整个网站,但我很乐意编写新的解决方案或使用插件,如果它能获得我想要的结果。该网站目前使用Gravity forms、WPAS、Beaver Builder和ACF pro。
- 很大一部分网站访问者是盲人或弱视者,因此解决方案必须 "screen reader friendly"
提前致谢
我最终使用了 Relevanssi 插件 - https://wordpress.org/plugins/relevanssi/ 并将其与 WPadvancedsearch 结合使用,它实际上可以很好地协同工作,让我可以做我需要的一切。