
داروی تقویتی برای جستجوگر وردپرس
در اینجا به مواردی اشاره می کنیم که باعث کارایی بهتر موتور جستجوی وردپرس میشود.
اگر نتیجه جستجو فقط یکی باشد، همان را به صورت کامل نمایش دهد (در فایل سینگل)
در اینجا روشی را بیان میکنیم که به صورت خودکار در صورت یافتن یک پست خواننده را به سمت آن هدایت میکند. بدین منظور کد زیر را در قسمت functions.php کپی کنید.
1 2 3 4 5 6 7 8 9 |
add_action('template_redirect', 'one_match_redirect'); function one_match_redirect() { if (is_search()) { global $wp_query; if ($wp_query->post_count >= 1) { wp_redirect( get_permalink( $wp_query->posts['0']->ID ) ); } } } |
نمایش تعداد نتایج یافت شده در جستجو
هنگامی که در وبلاگ شما جستجویی انجام میشود، وردپرس تعداد نتایج را نمایش نمیدهد. این امکان میتواند برای فردی که جستجو را انجام میدهد مفید باشد. به منظور نمایش تعداد نتایج یافت شده، فایل search.php را باز کرده و عبارتSearch Results را جستجو کنید. حالا کدهای زیر را پس از
1 |
<?php if (have_posts()) : ?> |
قرار دهید :
1 2 3 4 5 6 7 |
<?php global $wp_query; $total_results = $wp_query->found_posts; if($total_results==0){ echo "<span style='color:red;'>هیچ موردی ÛŒØ§ÙØª نشد.</span>"; }else{ ?> |
و سپس برای خروجی گرفتن تعداد نتایج جستجو، کد زیر را هرکجا که می خواهید قرار دهید :
1 |
<?php echo $total_results ; ?> |
تغییر رنگ متن جستجو شده در نتیج جستجو
تغییر رنگ متن جستجو شده باعث میشود نتایج جستجوی شما بیشتر مورد توجه کاربران قرار بگیرد.
بدین منظور فایل search.php را باز کرده و تابع the_title() را پیدا کنید. سپس آن را با مورد زیر جایگزین کنید:
1 |
echo $title; |
اکنون کدهای زیر را به آن اضافه کنید:
1 2 3 4 5 6 7 |
<?php $title = get_the_title(); $keys= explode(" ",$s); $title = preg_replace('/('.implode('|', $keys) .')/iu', '', $title); ?> |
فایل search.php را ذخیره کرده و style.css را باز کنید.سپس خط زیر را به آن اضافه کنید:
1 |
strong.search-excerpt { background: yellow; } |
جستجو در یک پست تایپ خاص
اگر میخواهید موتور جستجو خود را طوری تنظیم کنید که بر اساس نوع پست خاصی جستجو را انجام دهد ، بعد از اینکه پست تایپ خود را در خط چهارم تعیین کردید، کدهای زیر را در فایل functions.php file کپی کنید:
function SearchFilter($query) {
if ($query->is_search) {
// به جای post_type پست تایپ مورد نظر رو بنویسید :
$query->set(‘post_type’, ‘feeds’);
}
return $query;
}
// This filter will jump into the loop and arrange our results before they’re returned
add_filter(‘pre_get_posts’,’SearchFilter’);
جستجو گر وردپرس را کاملا تعطیل کنید
اگرچه گزینه جستجو در بسیاری از وبسایت ها مهم است اما گاهی نیازی به وجود آن نیست. شما میتوانید قسمت جستجو را از طریق کپی کدهای زیر در فایل functions.php ببندید:
function fb_filter_query( $query, $error = true ) {
if ( is_search() ) {
$query->is_search = false;
$query->query_vars[s] = false;
$query->query[s] = false;
// to error
if ( $error == true )
$query->is_404 = true;
}
}
add_action( ‘parse_query’, ‘fb_filter_query’ );
add_filter( ‘get_search_form’, create_function( ‘$a’, “return null;” ) );
نتایج جستجو خود را نامحدود کنید
شما میتوانید با استفاده از روش زیر و به آسانی تعداد پست های خود را در یک صفحه نامحدود کنید.
در قسمت search.php، کد زیر را به جای لوپ معمولی وردپرس، جایگزین کنید :
1 2 3 |
<?php $posts=query_posts($query_string . '&posts_per_page=-1'); ?> <?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?> |