Belki de WordPress'in en sağlıksız çalışan yapısı arama sistemi olabilir. Sağlıksız derken, default arama formunu kullanarak yaptığınız aramalar, yazılardaki tüm içeriği baz alarak yapılır. Bu yüzden, aradığınız yazıyı bulabilmek pek de kolay olmaz.
AYRICA: WordPress Tüm Yorumlardaki Linklerimizi HTTPS Yapalım
Bu yüzden, WordPress aramaları yazı başlıkları ile sınırlandırmak mümkündür. Aşağıdaki kodları değiştirmeden, temanızın functions.php dosyasına eklerseniz, aramalar yalnızca yazı başlıkları ile sınırlandırılacak, böylelikle aradığınız yazıyı bulabilmeniz daha da kolaylaşacaktır.
AYRICA: WordPress Tüm Yazılardaki Linklerimizi HTTPS Yapalım
WordPress Aramaları Yazı Başlıkları ile Sınırlandıralım
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 );
Not: Web sitenizde çok yazı yok ise, yukarıdaki kodları kullanmayabilirsiniz. Ancak çok fazla yazı mevcut ise, aramalarda daha sağlıklı sonuçlar elde edebilmek adına, aramaları yazı başlıkları ile sınırlandırmak sağlıklı olacaktır.
Kod çalışmıyor. Sadece başlık değil site tümünde arama yapıyor hala.