همانطور که میدانید جستجوی وردپرس بطور پیشفرض هم در متن و هم در عنوان پست ها و برگه ها جستجو میکند . خب این کار یک سری مزیت داره و یک سری مشکل . اما گاهی اوقات شاید لازم دارید که جستجو محدود به عنوان پست ها باشه و متن پست رو جستجو نکنه ! برای اینکار نمیخواهد هسته وردپرس رو ادیت کنید … کافیست با ما باشید در ادامه با یک تکه کد ساده به شما این کار را آموزش میدهیم …
کافیست کد زیر را در functions.php قرار دهید :
<?php function __search_by_title_only( $search, &$wp_query ) { global $wpdb; if ( empty( $search ) ) return $search; // skip processing - no search term in query $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 ); ?>
خب تمام شد ! الان اگر فرم جستجو در سایت داشته باشید میتوانید با تست کردن متوجه بشید که فقط در عنوان ها جستجو میکند …
موفق و وردپرسی باشید برای همیشه !
داود 9 سال عضو همیار وردپرس
سلام
در قسمت سرچ سایتم وقتی کلمه فارسی سرچ میکنم این ارور را میدهد:
You don’t have permission to access /?s=%DA%A9%D9%88%D8%AF%DA%A9 on this server.
از میزبان هاستم پرسیدم گفتن مشکل از افزونه امنیتی خودتان است غیرفعال کردم درست نشد
چجوری درستش کنم قبلا درست بود
بهاره کوهستانی 11 سال عضو همیار وردپرس
سلام
تمام افزونهها رو غیرفعال کنید و تست کنید.
ahmadesmaili 9 سال عضو همیار وردپرس
برای من این کد این ارور رو میده
کمک کنید لطفا
Warning: Parameter 2 to sbtonly_filter() expected to be a reference, value given in C:\xampp\htdocs\falatghareh\wp-includes\class-wp-hook.php on line 286
بهاره کوهستانی 11 سال عضو همیار وردپرس
سلام
این قطعه کد باید در function.php یا فایل مخصوصی که مربوط به دستورالعملها در سایت شما موجوده، اضافه بشه