क्या शीर्षक पोस्ट करने के लिए खोज को सीमित करने का एक तरीका है? मुझे पता है कि मैं query.php कोर फ़ाइल को संशोधित कर सकता हूँ, लेकिन सही तरीके से इसे करने का कोई तरीका होना चाहिए?
अग्रिम में धन्यवाद!
क्या शीर्षक पोस्ट करने के लिए खोज को सीमित करने का एक तरीका है? मुझे पता है कि मैं query.php कोर फ़ाइल को संशोधित कर सकता हूँ, लेकिन सही तरीके से इसे करने का कोई तरीका होना चाहिए?
अग्रिम में धन्यवाद!
जवाबों:
यहाँ एक फ़िल्टर है जो चाल को करेगा। इसे अपने विषय functions.php
या प्लगइन में छोड़ें ।
/**
* 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 );
अधिकांश कोड केवल WP_Query
कक्षा से कॉपी किए जाते हैं , सिवाय post_content LIKE
हटाए गए के साथ।
अद्यतन:like_escape()
4.0 से हटाए गए हटाए गए