Aramayı başlıklarla sınırlandırmanın bir yolu var mı? Query.php çekirdek dosyasını değiştirebildiğimi biliyorum, ancak doğru kanca ile yapmanın bir yolu olmalı?
Şimdiden teşekkürler!
Aramayı başlıklarla sınırlandırmanın bir yolu var mı? Query.php çekirdek dosyasını değiştirebildiğimi biliyorum, ancak doğru kanca ile yapmanın bir yolu olmalı?
Şimdiden teşekkürler!
Yanıtlar:
İşte hile yapacak bir filtre. Temanıza functions.php
veya bir eklentiye bırakın .
/**
* Search SQL filter for matching against post title only.
*
* @link http://wordpress.stackexchange.com/a/11826/1685
*
* @param string $search
* @param WP_Query $wp_query
*/
function wpse_11826_search_by_title( $search, $wp_query ) {
if ( ! empty( $search ) && ! empty( $wp_query->query_vars['search_terms'] ) ) {
global $wpdb;
$q = $wp_query->query_vars;
$n = ! empty( $q['exact'] ) ? '' : '%';
$search = array();
foreach ( ( array ) $q['search_terms'] as $term )
$search[] = $wpdb->prepare( "$wpdb->posts.post_title LIKE %s", $n . $wpdb->esc_like( $term ) . $n );
if ( ! is_user_logged_in() )
$search[] = "$wpdb->posts.post_password = ''";
$search = ' AND ' . implode( ' AND ', $search );
}
return $search;
}
add_filter( 'posts_search', 'wpse_11826_search_by_title', 10, 2 );
Kodun çoğu, kaldırılmış WP_Query
olanlar dışında, yalnızca sınıftan kopyalanır post_content LIKE
.
GÜNCELLEME:like_escape()
4.0'dan beri kaldırıldı