Wordpress:空帖子类型搜索查询结果重定向而不是去搜索结果

时间:2017-11-03 19:36:04

标签: wordpress redirect search custom-post-type custom-taxonomy

我使用的是Search&过滤插件以过滤附加到自定义帖子类型(主题和位置)的两个自定义分类。我的一些用户正在使用"所有主题" &安培; "所有地点"希望它将在提交时重置为原始存档页面。当然,这会将Wordpress发送到搜索结果页面,因为它会导致空搜索查询。看起来像这样:

http://www.example.com/?s=

在这里,是什么让我的情况与其他只想要一条消息说“没有找到结果”的人有所不同。"我不是将其转到搜索结果,而是将用户重定向回他们运行此查询时所处的自定义帖子类型的存档页面。看起来像这样:

http://www.example.com/resources/

但问题还有另一层。我有两个自定义帖子类型,有两个自定义分类。资源和培训。如果他们接受培训,我需要将他们重定向到一个空搜索查询的Trainings存档。如果他们依赖资源,我需要将他们重定向到空搜索查询的资源。

这可能吗?

1 个答案:

答案 0 :(得分:0)

要构建此自定义重定向,您需要在INIT挂钩中构建条件逻辑。哪个检查用户来自哪个页面并将其重定向到相应的页面。

add_action('init','custom_redirector');

function custom_redirector(){
 if (isset($_GET["s"]) and $_GET["s"]=='' and !empty($_SERVER['HTTP_REFERER'])){
 if (strpos($_SERVER['HTTP_REFERER'],'resources')!==false){
  header("location: ".home_url('/resources')); exit;
 }
 elseif (strpos($_SERVER['HTTP_REFERER'],'trainings')!==false){
  header("location: ".home_url('/trainings')); exit;
  }
 }
}

当然代码可能需要一些调整,特别是在" strpos($ _ SERVER [' HTTP_REFERER'],'资源')"部分。您最好知道自定义帖子页面包含哪些可识别的slu ..