আমি কীভাবে একটি অনুসন্ধান ইউআরএল পুনর্লিখন করতে পারি তা জানতে চাই যাতে একটি অতিরিক্ত জিজ্ঞাসা বর্ণটি সুন্দর পারমালিঙ্ক wp_redirect
এবং template_redirect
হুক ব্যবহার করে অন্তর্ভুক্ত থাকে ।
আমি নিস সার্চ প্লাগইন থেকে কোডটি নিয়েছি যা পরিবর্তিত করতে ভাল কাজ 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();
}
}
তবে আমি রিলেভানসি প্লাগইনের সাথে একত্রে একটি নির্বাচিত ড্রপডাউন ব্যবহার করছি যাতে দর্শকদের নির্দিষ্ট পোস্টের ধরণের অনুসন্ধান সংকুচিত করতে দেয়। এটি একটি post_type
ক্যোয়ারী বর্ণ যুক্ত করে, যেমন http://example.com?s=africa&post_type=features
। আমি এটির মতো একটি ইউআরএল চাই http://example.com/search/africa/section/features
।
নিস সন্ধান কোড পোস্ট-টাইপ ক্যোয়ারী ভেরি হারিয়ে যাওয়ার কারণ। সুতরাং আমি নিম্নলিখিত কোড চেষ্টা করেছিলাম:
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();
}
}
তবে ওয়ার্ডপ্রেস এখন অনুসন্ধান শব্দটি মনে করে africa/section/features
।
আমি কী কীভাবে অনুসন্ধান শব্দ এবং ক্যোয়ারী ভ্যারিকে সুন্দর পারমলিংকে রাখতে পারি?
ধন্যবাদ সাইমন