Comment limiter la recherche aux titres des articles

Un lecteur nous demandait récemment comment faire pour limiter les recherches aux titres des articles ou des pages seulement et ne pas tenir compte du contenu de celui-ci.

Comment filtrer et limiter les recherches aux titres ?

Ajoutez le code suivant au fichier functions.php :

// filtrer la recherche et limiter aux titres
function wpln_recherche_sur_titres( $search, &$wp_query ) {

    global $wpdb;

    if ( empty( $search ) )
        return $search;

    $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', 'wpln_recherche_sur_titres', 500, 2 );

You May Also Like

About the Author: Gregory

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *