WordPress Aramalarını Sadece Yazı Başlıklarında Yapmak

WordPress arama sonuçlarına kısıtlama getirmek isteyebilir ve yazının tüm içeriği yerine, sadece başlıkta arama yaptırabilirsiniz. Böylece daha kararlı sonuçlar elde edilebilir.

WordPress Aramalarını Sadece Yazı Başlıklarında Yapmak

Eğer sizin de girişte bahsettiğim gibi bir ihtiyacınız varsa, kullandığınız WordPress temasının functions.php dosyasına alttaki satırları eklemeniz, probleminizi çözmekte yararlı olacaktır.


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 );

Kodların kaynağı: how to limit search to post titles?