추가 쿼리 var가 포함 된 검색 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 플러그인 과 함께 select 드롭 다운을 사용하여 방문자가 특정 게시물 유형으로 검색 범위를 좁힐 수 있습니다. 이것은 post_type
질의 var를 추가합니다 ( 예 :) http://example.com?s=africa&post_type=features
. 이 같은 URL을 갖기를 원합니다 http://example.com/search/africa/section/features
.
Nice Search 코드는 post_type 쿼리 var가 손실되도록합니다. 그래서 다음 코드를 시도했습니다.
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
입니다.
검색어와 검색어 var를 모두 멋진 영구 링크로 유지할 수있는 방법이 있습니까?
감사합니다 사이먼