2017-11-03 15 views
0

私は、検索&フィルタプラグインを使用して、カスタム投稿タイプ(件名&の場所)に添付された2つのカスタム分類をフィルタリングしています。私のユーザーの中には、 "All Subjects" & "All Locations"フィールドを使用して、送信時に元のアーカイブページにリセットされることを期待しています。もちろん、これはWordpressを検索結果ページに送ります。なぜなら、それは空の検索クエリになるからです。つまり、このようなものになります「結果が見つかりません」Wordpress:空の投稿タイプの検索クエリの結果は、検索結果の代わりにリダイレクト

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

はここで簡単に言うメッセージをしたい、他の人から私の状況はユニークなものだが検索結果に行くのではなく、ユーザーがこのクエリを実行したときのカスタム投稿タイプのアーカイブページにユーザーをリダイレクトすることになります。このようなもの:

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

しかし、問題への別の層があります。私は2つのカスタム分類を持つ2つのカスタム投稿タイプを持っています。リソースとトレーニング。彼らがトレーニング中の場合は、空の検索クエリでTrainingingsアーカイブにリダイレクトする必要があります。リソースがある場合は、空の検索クエリでリソースにリダイレクトする必要があります。

これは可能ですか?

答えて

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'] 'リソース')" の部分では、いくつかのチューニングが必要になる場合があります。カスタムポストページに含まれる認識可能なスラッグを知っている方がいいでしょう。

+0

ありがとうございます。この特定のプラグインに組み込まれている特定の機能が不足していることに気付きました。しかし、あなたの答えは正しい。 – Jonathan

関連する問題