Я хотів би знати , як я можу переписати URL пошуку , який також містить додатковий вар запиту в досить Permalink використанні 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
var запиту, наприклад http://example.com?s=africa&post_type=features
. Я хотів би, щоб ця URL-адреса мала щось подібне http://example.com/search/africa/section/features
.
Код Nice Search приводить до втрати варі запиту після_типу. Тому я спробував наступний код:
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
.
Чи є спосіб я зберегти пошуковий термін і варі за запитом все в хорошій постійній посилання?
Спасибі Саймон