آموزش ریدایرکت به نتیجه جستجو در صورت وجود یک نتیجه
همانطور که در بالا هم ذکر کردیم، کاری که تصمیم داریم انجام بدهیم این است که اگر کاربری در سایت به دنبال عبارتی جستجو کرد و جستجوی وی فقط یک نتیجه در بر داشت، بجای نمایش نتایج جستجو، کاربر را مستقیما به نتیجه ی یافت شده هدایت کنیم.
برای انجام این کار کافی است کد زیر را به فایل functions.php قالب خود یا افزونه site-specific ای که ساخته اید اضافه کنید. (آموزش ساختن افزونه وردپرس)
کد
function redirect_to_single_post() {
if (is_search() && is_main_query()) {
global $wp_query;
if ($wp_query->post_count == 1 && $wp_query->max_num_pages == 1) {
wp_redirect( get_permalink( $wp_query->posts['0']->ID ) );
exit;
}
}
}
add_action('template_redirect', 'redirect_to_single_post' );
پس از اضافه کردن این کد به فایل توابع پوسته (منظور همان فایل functions.php است) خود، تغییرات را ذخیره کنید. حالا اگر به سایتتان مراجعه کرده از امکان جستجو استفاده کنید، خواهید دید که هرگاه جستجو فقط یک نتیجه در بر داشته باشد، نتیجه ی یافت شده مستقیما برای کاربر به نمایش گذاشته شده و در چنین حالتی صفحه ی نتایج جستجو به نمایش در نخواهد آمد.