جستجو وردپرس امکانات بسیار مفیدی رو در اختیار کاربران قرار میدهد. از این قابلیت های مفید میتواند به جستجو در عنوان پست و یا در محتوا و یا در هر دو اشاره کرد. همچنین می توانید در انواع مختلف پست نیز جستجو کنید.
ما در اینجا به شما آموزش میدیم که چطور فرایند جستجو را برای کاربران خود آسان تر کنید. وقتی جستجو کاربر ما فقط یک نتیجه داشت چگونه کاربر رو به صورت خودکار به آن مطلب منتقل کنیم ؟ قطعا با این کار لازم نیست کاربر بر روی نتیجه جستجو کلیک کرده و وارد آن شود و این یعنی صرفه جویی در وقت.
خوب چگونه باید این کار رو انجام داد ؟
این کار بسیار ساده است. نگران نباشید، کد زیر را در فایل functions.php پوسته وردپرس خود وارد کنید.
function single_result() { if (is_search()) { global $wp_query; if ($wp_query->post_count == 1) { wp_redirect( get_permalink( $wp_query->posts['0']->ID ) ); } } } add_action('template_redirect', 'single_result');
تموم ! انجام شد!
خوب حالا همونطور که بالا توضیح دادم وردپرس این امکان رو داره که فقط در عنوان مطالب جستجو کنه که این عالیه !
این کار نتیجه بهتر و حتی موثر خواهد داشت. فقط این کد را به جای کد بالا استفاده کنید:
function search_by_title_only( $search, &$wp_query ) { global $wpdb; if ( empty( $search ) ) return $search; $q = $wp_query->query_vars; $n = ! empty( $q['exact'] ) ? '' : '%'; $search = $searchand = ''; foreach ( (array) $q['search_terms'] as $term ) { $term = esc_sql( like_escape( $term ) ); $search .= "{$searchand}($wpdb->posts.post_title LIKE '{$n}{$term}{$n}')"; $searchand = ' AND '; } if ( ! empty( $search ) ) { $search = " AND ({$search}) "; if ( ! is_user_logged_in() ) $search .= " AND ($wpdb->posts.post_password = '') "; } return $search; } add_filter( 'posts_search', 'search_by_title_only', 500, 2 ); function single_result() { if (is_search()) { global $wp_query; if ($wp_query->post_count == 1) { wp_redirect( get_permalink( $wp_query->posts['0']->ID ) ); } } } add_action('template_redirect', 'single_result');
به همین خوش مزگی