Wordpress

WordPress Site İçi Aramaları Başlıklarla Sınırlandırmak

WordPress alt yapılır sitemizde, site içerisindeki arama kutucuğunda arama yaptığımız zaman arama sonucu olarak bizi tüm sitedeki yazıların içerisinde olan benzer kelimeleri getirir.

Örneği fragman haberleri paylaştığımız bir wordpress sitesinde “Demir Adam” başlıklı filmi aramak için arama kutucuğuna “Demir” yazdığımızda sitedeki herhangi bir yazının içinde bulunan “demir” kelimeli tüm yazıları karşımıza çıkartır. Ama bizim istediğimiz bu değil, sadece yazı başlığında “demir” geçen sonuçları görmek istiyoruz. WordPress‘in halihazırda bildiğim kadarıyla böyle bir özelliği yok şu an.

Sadece yazı başlığında arama yapmak için aşağıdaki kodu temamızın functions.php dosyasına ekliyoruz.

Siz kodu eklerken <!– işaretini ve sonraki –> işaretini eklemeyeceksiniz.

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

Yukarıdaki kod, arama kutucuğuna yazılan kelimelerin sadece yazı içerisinde aranmasını sağlayacaktır.

Not: Denemeden önce değişiklik yapacağınız dosyalarınızın yedeğini mutlaka alınız!

Eğer yukarıdaki kod güncelliğini kaybetmiş ve artık çalışmıyorsa lütfen bildirin.

Bu Yazıya Bir Yorum Ekleyin