追加のクエリ変数も含む検索URLをwp_redirect
、template_redirect
フックを使用してかなりのパーマリンクに書き換える方法を知りたいのですが。
Nice Searchプラグインからコードを取得しましたが、次のように変更できhttp://example.com?s=africa
ますhttp://example.com/search/africa
。
add_action( 'template_redirect', 'my_rewrite' ) );
function my_rewrite() {
if ( is_search() and false === strpos( $_SERVER['REQUEST_URI'], '/search/' ) ) {
wp_redirect( get_bloginfo( 'home' ) . '/search/' . str_replace( ' ', '+', str_replace( '%20', '+', get_query_var( 's' ) ) ) );
exit();
}
}
しかし、選択ドロップダウンをRelevanssiプラグインと組み合わせて使用して、訪問者が特定の投稿タイプに検索を絞り込むことができるようにしています。これにより、post_type
クエリ変数が追加されますhttp://example.com?s=africa&post_type=features
。これにのようなURLを設定しますhttp://example.com/search/africa/section/features
。
ニース検索コードにより、post_typeクエリ変数が失われます。だから私は次のコードを試しました:
function my_rewrite() {
if ( is_search() and false === strpos( $_SERVER['REQUEST_URI'], '/search/' ) ) {
if ( isset( $_GET['post_type'] ) and '' !== $_GET['post_type'] ) {
wp_redirect( get_bloginfo( 'home' ) . '/search/' . str_replace( ' ', '+', str_replace( '%20', '+', get_query_var( 's' ) ) ) . '/section/' . str_replace( ' ', '+', str_replace( '%20', '+', get_query_var( 'post_type' ) ) ) );
} else {
wp_redirect( get_bloginfo( 'home' ) . '/search/' . str_replace( ' ', '+', str_replace( '%20', '+', get_query_var( 's' ) ) ) );
}
exit();
}
}
しかし、WordPressは現在、検索用語はであると考えていますafrica/section/features
。
検索語とクエリ変数をすべて素敵なパーマリンクに保持する方法はありますか?
おかげでサイモン