Search

הגבלת החיפוש בוורדפרס לכותרת הפוסט בלבד

ישנם מצבים (די שכיחים האמת) בו תהיו מעוניינים להגביל את החיפוש באתר הוורדפרס שלכם לכותרות בלבד ולא לטקסט בפוסט עצמו. בכדי לבצע זאת הוסיפו את הקוד הבא לקובץ functions.php, (שימו לב שפונקציה זו תיושם גם בחיפוש המתבצע מלוח הבקרה של וורדפרס).

/**
 * Search SQL filter for matching against post title only.
 *
 * @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 );
מצאתם טעות בקוד? הסניפט לא עובד לכם? רישמו לי בתגובות ואני מבטיח לטפל בכך במהרה ולספק סניפט תקין...
0 תגובות...

תגובה חדשה

Up!
לבלוג