ฉันต้องการทราบว่าฉันสามารถเขียน URL การค้นหาที่มี var การสืบค้นเพิ่มเติมลงใน Permalink ที่ใช้wp_redirect
และtemplate_redirect
hook ได้อย่างไร
ฉันนำโค้ดจากปลั๊กอิน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 ทำให้ var คิวรีของ 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
คำค้นหาที่เป็น
มีวิธีที่ฉันสามารถเก็บข้อความค้นหาและแบบสอบถามได้ทั้งหมดในลิงก์ถาวรหรือไม่
ขอบคุณ Simon