حذف برگه ها از نتایج جستجوی وردپرس
وردپرس به صورت پیشفرض در هنگام جستجو تمام برگههای شما را نیز جستجو میکند که میتواند دو نتیجهی نامناسب به دنبال داشته باشد. اول اینکه محتوای برگهها اغلب شامل مطالب کلی سایت است و به ندرت نیازی به جستجوی محتوای آنها وجود دارد و دوم اینکه ممکن است این برگهها شامل محتوایی باشند که نمایش آنها به کاربران مورد انتظار نباشد.
برای انجام این کار علاوه بر استفاده از افزونههایی که برای این منظور ایجاد شدهاند( مثلا این افزونه )، از قطعه کدهای سادهی زیر نیز میتوانید استفاده کنید. کافی است این کدها را در فایل functions.php قالب سایتتان درج کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
if( ! is_admin() ) { function roka_search_only_posts( $query ) { if ( $query->is_search ) { $query->set( 'post_type', 'post' ); } return $query; } add_filter( 'pre_get_posts', 'roka_search_only_posts' ); } |
قطعه کد بالا باعث میشود که هنگام جستجو( به جز جستجو در بخش مدیریت ) وردپرس تنها محتوای نوشتهها یا postها را جستجو کند. دقت کنید که اگر سایت شما دارای انواع پستهای سفارشی دیگر مثل product در ووکامرس است و میخواهید محتوای این نوع صفحات نیز در جستجو ظاهر شود، انواع پست سفارشی را به شکل زیر در یک آرایه به تابع مورد نظر ارسال نمایید:
1 |
$query->set( 'post_type', [ 'post', 'product' ] ); |
استفاده از قطعه کد بالا علاوه بر مزیتهایی محتوایی که دارد، میتواند سرعت جستجو را نیز افزایش دهد و میزان بار پردازشی روی هاست را کمتر کند چون تعداد کمتری از محتوا را جستجو میکند.