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 );
Facebook
Twitter (X)
LinkedIn
WhatsApp
Reddit

Gregory

Agitateur de Stratégiesaddict à WordPress depuis 2003, fada de Google depuis 1998. J’accompagne au quotidien plusieurs entreprises et indépendants dans la gestion de leur stratégie digitale et l’optimisation de leurs sites WordPress.

Laisser un commentaire

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

Sur le même sujet