Comment créer une recherche personnalisée dans WordPress sans plugin

Publié: 2022-07-25

Vous vous demandez comment créer une recherche personnalisée dans WordPress sans plugin ?

En personnalisant la recherche sur votre site, vous pouvez augmenter le nombre de pages vues, augmenter vos ventes et aider vos visiteurs à trouver plus rapidement ce qu'ils sont venus chercher.

Dans cet article, nous expliquerons comment vous pouvez personnaliser la recherche sur votre site sans installer de plugin et pourquoi vous devriez toujours envisager d'utiliser un plugin pour le faire.

Voici une table des matières pour vous aider à naviguer rapidement dans cet article :

  • Pourquoi la recherche personnalisée est-elle importante pour votre site Web WordPress ?
  • Inconvénients de la création d'une recherche personnalisée sans plugin
  • La méthode la plus simple pour personnaliser la recherche WordPress sur votre site
  • Créer une recherche personnalisée dans WordPress sans plugin

Commençons!

Pourquoi la recherche personnalisée est-elle importante pour votre site Web WordPress ?

Pour commencer, parlons de la façon dont une recherche personnalisée sur votre site peut vous aider à développer votre entreprise.

La personnalisation de la recherche sur votre site vous permet de :

  • Fournir des résultats de recherche plus pertinents . Limitez votre recherche à des catégories spécifiques pour affiner vos résultats de recherche et aider les visiteurs à trouver plus rapidement ce qu'ils recherchent.
  • Obtenez plus de pages vues et de ventes . Boostez la découvrabilité de votre contenu et augmentez vos revenus en faisant la promotion de publications ou de produits spécifiques dans vos résultats de recherche.
  • Fidélisez votre public . Les visiteurs qui ont eu une expérience de recherche positive sur votre site sont plus susceptibles de revenir pour explorer davantage votre contenu.
  • Générez plus de trafic à partir des moteurs de recherche . En aidant les visiteurs à trouver plus rapidement le bon contenu, vous les faites rester plus longtemps sur votre site, ce qui est l'un des principaux facteurs de classement de Google.

Après avoir déterminé les avantages que la recherche personnalisée peut apporter à votre entreprise, parlons des inconvénients auxquels vous pouvez vous attendre si vous le faites sans plugin.

Inconvénients de la création d'une recherche personnalisée sans plugin

Vous devez tenir compte de quelques inconvénients majeurs si vous souhaitez créer une recherche personnalisée sur votre site sans plugin.

1. Cela nécessite des compétences en codage et une connaissance approfondie de WordPress

Le principal inconvénient de la personnalisation manuelle de la recherche de votre site est qu'elle nécessite une vaste expérience de codage et une connaissance approfondie de WordPress.

Le fait est qu'il n'y a pas d'outils de configuration de recherche par défaut dans WordPress.

Pour cette raison, la seule façon de personnaliser votre recherche est de modifier les fichiers principaux de WordPress et le code de votre thème.

C'est peu pratique, chronophage et inadapté aux personnes non averties en matière de technologie.

De plus, si vous faites quelque chose de mal, cela peut entraîner le plantage de votre site, vous devez donc être très prudent lors de la personnalisation de vos fichiers de thème.

2. Vous aurez moins de fonctionnalités

De plus, même si vous avez des compétences étendues en matière de codage, le nombre de fonctionnalités de recherche personnalisées que vous pouvez ajouter sans plugin est limité.

Par exemple, vous ne pouvez pas ajouter plusieurs moteurs de recherche avec un ensemble unique de règles, exclure des pages ou des catégories spécifiques de la recherche, gérer l'ordre de vos résultats de recherche, etc.

Donc, s'il est crucial pour vous d'avoir un contrôle total sur le fonctionnement de la recherche sur votre site, vous devriez envisager d'utiliser un puissant plugin de recherche WordPress.

3. Vous risquez de perdre vos modifications

Enfin, étant donné que la personnalisation de la recherche sans plugin nécessite d'apporter des modifications aux fichiers de votre site, vous perdrez toutes les modifications que vous avez apportées lorsque vous mettez à jour votre thème ou votre version de WordPress.

La meilleure façon d'éviter de telles situations est d'utiliser un plugin de recherche WordPress, car il conserve vos paramètres quoi que vous fassiez avec votre site.

Sur ce, voyons comment vous pouvez personnaliser la recherche sur votre site en quelques clics, sans codage et quelles que soient vos compétences techniques.

La méthode la plus simple pour personnaliser la recherche WordPress sur votre site

Le moyen le plus simple de personnaliser une recherche sur votre site WordPress est d'utiliser un plugin comme SearchWP.

SearchWP logo

SearchWP est le plugin de recherche WordPress le mieux noté auquel plus de 30 000 propriétaires de sites Web font confiance.

Son interface conviviale pour les débutants et ses fonctionnalités puissantes vous permettent de personnaliser entièrement votre recherche même si vous lancez votre premier site Web.

Par exemple, avec SearchWP, vous pouvez gérer où WordPress doit rechercher des correspondances, limiter la recherche à un type de contenu spécifique, activer la recherche par balises et champs personnalisés, et bien d'autres.

La meilleure chose est que vous pouvez faire la plupart de ces choses en quelques clics.

Vous pouvez également utiliser SearchWP pour :

  • Afficher les résultats de la recherche en mode direct . Activez l'affichage en direct des résultats de recherche sur votre site afin que vos visiteurs puissent accéder instantanément au contenu qu'ils souhaitent.
  • Suivez les recherches de vos visiteurs . Recueillez des données sur ce que les visiteurs recherchent sur votre site, quels résultats sont les plus cliquables et d'autres données précieuses.
  • Mettez en surbrillance les termes de recherche dans les résultats de recherche . Aidez vos visiteurs à déterminer s'ils ont trouvé le bon contenu plus rapidement en mettant en évidence les mots-clés dans les résultats de recherche.
  • Exclure des pages spécifiques de la recherche . Débarrassez-vous de l'encombrement des résultats de recherche sur votre site en excluant les pages redondantes et le contenu obsolète.

Après avoir appris pourquoi SearchWP est le meilleur plugin de recherche WordPress, voyons comment vous pouvez l'utiliser pour personnaliser la recherche sur votre site en fonction de vos besoins.

Étape 1 : Installer et activer SearchWP

La première étape consiste à récupérer votre copie de SearchWP ici.

Une fois cela fait, accédez au tableau de bord de votre compte SearchWP et cliquez sur Téléchargements .

go to the Downloads tab

Ensuite, appuyez sur le bouton Télécharger SearchWP et enregistrez le plugin sur votre ordinateur.

click Download SearchWP

Après le téléchargement, copiez votre clé de licence SearchWP dans le coin inférieur gauche.

copy your license key

Ensuite, vous devrez installer SearchWP sur votre site. Si vous avez besoin d'aide, vous pouvez suivre notre guide détaillé sur l'installation d'un plugin WordPress.

Une fois que SearchWP est opérationnel sur votre site, l'étape suivante consiste à activer votre copie du plugin.

Pour ce faire, accédez à votre tableau de bord WordPress et cliquez sur Activer la licence sous le bouton SearchWP dans le panneau supérieur.

click Activate License

Après cela, entrez votre clé de licence dans le champ Licence et appuyez sur Activer .

press Activate

Après avoir activé votre copie de SearchWP, vous êtes prêt à commencer à personnaliser votre recherche.

Étape 2 : Commencez à personnaliser votre recherche

Pour commencer, cliquez sur Moteurs dans vos paramètres SearchWP.

go to Engines

Vous pouvez ajouter, supprimer et personnaliser vos moteurs de recherche sur cet onglet.

your search engines

SearchWP crée automatiquement le moteur de recherche par défaut après l'installation.

Il est lié à chaque formulaire de recherche existant, donc en le personnalisant, vous pouvez contrôler le fonctionnement de la recherche sur votre site.

Par exemple, vous pouvez gérer la liste de vos sources de recherche, faire en sorte que WordPress considère de nouveaux attributs de contenu, limiter la recherche à des catégories spécifiques, etc.

Avec SearchWP, vous pouvez ajouter un nombre illimité de moteurs de recherche et les connecter à des formulaires de recherche individuels sur votre site.

Grâce à cela, vous pouvez créer rapidement des formulaires de recherche personnalisés pour divers besoins commerciaux et les placer où vous le souhaitez sur votre site.

Étant donné que dans ce didacticiel, nous souhaitons personnaliser le fonctionnement de la recherche sur l'ensemble du site, nous allons modifier le moteur de recherche par défaut .

Tout d'abord, spécifions où WordPress cherchera du contenu en configurant sa liste de sources de recherche.

Gérez vos sources de recherche

Pour commencer, appuyez sur le bouton Sources et paramètres sous la section Moteur de recherche par défaut .

click Sources and Settings

Ici, vous pouvez gérer où WordPress doit rechercher les correspondances. Par défaut, il recherche parmi les fichiers Posts , Pages et Media .

uncheck search sources

Pour supprimer une source de recherche, décochez une case à côté de celle-ci. Par exemple, limitons la recherche sur notre site aux publications uniquement.

Pour ce faire, nous décocherons toutes les autres sources à l'exception des publications , puis cliquerons sur Terminé pour enregistrer les modifications.

left only Posts search source active

Une fois que nous avons configuré notre liste de sources de recherche, améliorons également notre recherche en faisant en sorte que WordPress prenne en compte les attributs de publication et les taxonomies.

Configurez vos attributs de recherche

Pour commencer, cliquez sur le bouton Ajouter/Supprimer des attributs dans la section Source de recherche des publications .

click Add Remove attributes

Dans la fenêtre qui apparaît, vous pouvez spécifier les attributs et les taxonomies que vous souhaitez que WordPress prenne en compte lors d'une recherche.

add new attributes

Pour rendre un champ personnalisé spécifique consultable, cliquez sur le champ Champs personnalisés et entrez son nom.

click on the Custom Fields field

Il existe également le raccourci Any Meta Key , en ajoutant lequel vous pouvez rendre consultables tous les champs de recherche existants à la fois.

click Add Any Meta key

Lorsque vous avez terminé d'ajouter des champs personnalisés, créons également des taxonomies d'index WordPress.

Dans WordPress, les taxonomies sont une méthode de classification du contenu et des données. Par exemple, il peut s'agir de catégories de publication, de balises, de format ou d'autre chose.

Pour rendre une nouvelle taxonomie consultable, cliquez sur le champ Taxonomies et sélectionnez la taxonomie souhaitée.

click on the Taxonomies field

Par exemple, faisons en sorte que WordPress considère les balises de publication lors d'une recherche. Pour ce faire, choisissez l'option Balises dans le menu déroulant.

choose the Tags taxonomy

Vous pouvez également faire en sorte que WordPress ignore les attributs de publication par défaut tels que Title , Content , Slug et Excerpt en décochant les cases à côté d'eux.

uncheck the default attributes

Une fois que vous avez terminé de gérer les attributs de la source de recherche des messages , appuyez sur Terminé pour enregistrer les modifications.

press Done

Voyons maintenant comment vous pouvez affiner votre recherche pour donner à vos visiteurs des résultats plus pertinents.

Limiter la recherche à une catégorie de publication spécifique

Pour commencer, appuyez sur le bouton Modifier les règles .

click Edit Rules

Cliquez ensuite sur Ajouter une règle .

click Add Rule

Ici, vous pouvez ajouter des règles selon lesquelles WordPress filtrera le contenu dans les résultats de recherche.

there are no rules by default

Par exemple, vous pouvez ajouter une règle pour exclure des catégories spécifiques de votre recherche ou, inversement, limiter votre recherche à celles-ci.

Supposons que nous voulions limiter la recherche sur notre site de test à la catégorie Actualités .

Pour ce faire, assurez-vous d'abord de choisir l'option Afficher uniquement les entrées si : et la taxonomie Catégories .

limit search to a specific category

Entrez ensuite le nom d'une catégorie à laquelle vous souhaitez limiter votre recherche dans le champ le plus à droite. Dans notre cas, ce sera News .

specify a category

Après avoir fini de personnaliser les règles de votre moteur de recherche, cliquez sur Terminé pour enregistrer vos modifications.

click Done to save your rules

Lorsque vous êtes satisfait de la façon dont vous avez personnalisé votre recherche, vous êtes prêt à passer à l'étape finale et à enregistrer votre moteur de recherche.

Sauvegardez votre moteur de recherche

Pour ce faire, appuyez sur Enregistrer les moteurs dans le coin supérieur droit de votre tableau de bord SearchWP.

click Save Engines

Cliquez ensuite sur Reconstruire l'index pour que WordPress réindexe tout votre contenu et applique les nouveaux paramètres du moteur de recherche.

click Rebuild Index

C'est ça. Vous avez entièrement personnalisé la recherche selon vos besoins sans écrire une seule ligne de code.

Testons votre nouvelle recherche pour nous assurer qu'elle fonctionne selon vos personnalisations.

Étape 3 : Testez votre nouvelle recherche

Pour commencer, accédez à votre site Web et effectuez une recherche test. Par exemple, puisque nous avons rendu les balises de publication consultables, essayons de trouver une publication uniquement par ses balises.

Sur notre site de test, nous avons un article intitulé "Nouvelles fonctionnalités WordPress", qui a la balise "Mises à jour".

Faisons une recherche par cette balise et voyons si nous pouvons trouver notre message.

press Find Results

Nous avons trouvé le message même s'il n'y a pas de mot "mises à jour" dans son titre, son extrait ou son contenu.

we found the post

Cela signifie que notre moteur de recherche prend désormais en compte les balises de publication lors de la recherche de correspondances.

Assurons-nous également que la recherche sur notre site est désormais limitée à la catégorie "Actualités".

Pour ce faire, nous rechercherons "WordPress", car nous avons de nombreux articles liés à WordPress dans d'autres catégories.

make another search

Vous pouvez voir que seuls les messages de la catégorie Actualités sont affichés parmi les résultats de recherche que nous avons obtenus.

we found the right posts

Cela signifie que la règle que nous avons ajoutée à notre moteur de recherche, qui dit que WordPress ne doit rechercher que parmi les actualités, fonctionne comme il se doit.

Ainsi, vous venez d'apprendre la manière la plus simple de personnaliser votre recherche. Voyons maintenant comment vous pouvez le faire sans utiliser de plugin.

Créer une recherche personnalisée dans WordPress sans plugin

Pour personnaliser votre recherche sans plugin, vous devrez apporter des modifications à votre thème.

Le moyen le plus sûr de le faire est de créer un thème enfant du thème actuel que vous utilisez sur votre site.

De cette façon, lorsque vous apportez des modifications à un thème enfant, votre thème parent reste intact, ce qui vous permet de basculer rapidement vers celui-ci en cas d'erreurs critiques.

De plus, avoir un thème enfant vous permet de mettre à jour votre thème parent sans perdre vos modifications. Pour plus de détails sur la création d'un thème enfant, consultez ce didacticiel sur la création d'un thème enfant.

Après avoir créé et activé un thème enfant, vous êtes prêt à commencer à personnaliser votre recherche.

Pour commencer, accédez à Apparence » Éditeur de fichiers de thème dans votre tableau de bord WordPress.

go to Theme Files Editor

Ensuite, recherchez le fichier functions.php dans le panneau de droite et cliquez dessus.

click the function file

Après cela, suivez les instructions ci-dessous en fonction des personnalisations que vous souhaitez effectuer pour rechercher sur votre site.

Activer la recherche de publications par balises et catégories

Pour rendre les balises et les catégories de publication consultables sur votre site sans plug-in, ajoutez le code suivant au fichier functions.php de votre thème :

/*
 * ----------------------------------------------------------
 *
 * Search Posts by Tags and Categories
 *
 * ----------------------------------------------------------
 */
 
 
/**
 * Join the terms, term_relationship, and term_taxonomy tables.
 *
 * @global $wpdb
 *
 * @param string $join  The JOIN clause.
 * @param object $query The current WP_Query instance.
 *
 * @return string The JOIN clause.
 */
function search_custom_posts_join( $join, $query ) {
 
	global $wpdb;
 
	if ( ! is_main_query() || ! is_search() ) {
		return $join;
	}
 
	$join .= "
    LEFT JOIN
    (
        {$wpdb->term_relationships}
        INNER JOIN
            {$wpdb->term_taxonomy} ON {$wpdb->term_taxonomy}.term_taxonomy_id = {$wpdb->term_relationships}.term_taxonomy_id
        INNER JOIN
            {$wpdb->terms} ON {$wpdb->terms}.term_id = {$wpdb->term_taxonomy}.term_id
    )
    ON {$wpdb->posts}.ID = {$wpdb->term_relationships}.object_id ";
 
	return $join;
}
 
add_filter( 'posts_join', 'search_custom_posts_join', 10, 2 );
 
/**
 * Modify the WHERE clause to include searches against taxonomies.
 *
 * @global $wpdb
 *
 * @param string   $where The WHERE clause.
 * @param WP_Query $query The current WP_Query instance.
 *
 * @return string The WHERE clause.
 */
function search_custom_posts_where( $where, $query ) {
 
	global $wpdb;
 
	if ( ! is_main_query() || ! is_search() ) {
		return $where;
	}
 
	// Get additional where clause for the user.
	$user_where = '';
 
	$user_id = get_current_user_id();
	$status  = array( "'publish'" );
 
	// Include private posts if the user is logged in.
	if ( $user_id ) {
		$status[]    = "'private'";
		$user_where .= " AND {$wpdb->posts}.post_author = {$user_id}";
	}
 
	$user_where .= " AND {$wpdb->posts}.post_status IN( " . implode( ',', $status ) . " ) ";
 
	$where .= " OR (
                    {$wpdb->term_taxonomy}.taxonomy IN( 'category', 'post_tag' )
                    AND
                    {$wpdb->terms}.name LIKE '%" . esc_sql( get_query_var( 's' ) ) . "%'
                    {$user_where}
                )";
 
	return $where;
}
 
add_filter( 'posts_where', 'search_custom_posts_where', 10, 2 );
 
/**
 * Set the GROUP BY clause to post IDs.
 *
 * @global $wpdb
 *
 * @param string   $groupby The GROUPBY clause.
 * @param WP_Query $query   The current WP_Query instance.
 *
 * @return string The GROUPBY clause.
 */
function search_custom_posts_groupby( $groupby, $query ) {
 
	global $wpdb;
 
	if ( ! is_main_query() || ! is_search() ) {
		return $groupby;
	}
 
	return "{$wpdb->posts}.ID";
}
 
add_filter( 'posts_groupby', 'search_custom_posts_groupby', 10, 2 );

Lorsque vous avez terminé, appuyez sur le bouton Mettre à jour le fichier pour enregistrer vos modifications.

press Done

Désormais, les visiteurs de votre site peuvent rechercher des publications par balises et catégories.

Activer la recherche par contenu de commentaire et noms d'auteur

Pour rendre les commentaires et les noms d'auteurs consultables sur votre site sans plugin, ajoutez le code suivant au fichier functions.php de votre thème :

/*
 * ----------------------------------------------------------
 *
 * Search by Comment Content and Author Names
 *
 * ----------------------------------------------------------
 */
 
 
/**
 * Joins the comments and posts tables.
 *
 * @global $wpdb
 *
 * @param string $join  The JOIN clause.
 * @param object $query The current WP_Query instance.
 *
 * @return string The JOIN clause.
 */
function search_custom_comments_posts_join( $join, $query ) {
 
	global $wpdb;
 
	if ( ! is_main_query() || ! is_search() ) {
		return $join;
	}
 
	$join .= ' LEFT JOIN ' . $wpdb->comments . ' ON ' . $wpdb->posts . '..comment_post_ID ';
 
	return $join;
}
 
add_filter( 'posts_join', 'search_custom_comments_posts_join', 10, 2 );
 
/**
 * Modify the WHERE clause to include searches against comments.
 *
 * @global $wpdb
 *
 * @param string   $where The WHERE clause.
 * @param WP_Query $query The current WP_Query instance.
 *
 * @return string The WHERE clause.
 */
function search_custom_comments_posts_where( $where, $query ) {
 
	global $wpdb;
 
	if ( ! is_main_query() || ! is_search() ) {
		return $where;
	}
 
	$where = preg_replace(
		"/\(\s*" . $wpdb->posts . ".post_title\s+LIKE\s*(\'[^\']+\')\s*\)/",
		"(" . $wpdb->posts . ".post_title LIKE $1) OR (" . $wpdb->comments . ".comment_author LIKE $1) OR (" . $wpdb->comments . ".comment_content LIKE $1)",
		$where
	);
 
	return $where;
}
 
add_filter( 'posts_where', 'search_custom_comments_posts_where', 10, 2 );
 
/**
 * Prevent search results duplicates.
 *
 * @param string   $distinct The DISTINCT clause.
 * @param WP_Query $query    The current WP_Query instance.
 *
 * @return string The DISTINCT clause.
 */
function search_custom_comments_posts_distinct( $distinct, $query ) {
 
	if ( ! is_main_query() || ! is_search() ) {
		return $distinct;
	}
 
	return 'DISTINCT';
}
 
add_filter( 'posts_distinct', 'search_custom_comments_posts_distinct', 10, 2 );

Lorsque vous avez terminé, cliquez sur le bouton Mettre à jour le fichier en bas de l'éditeur pour enregistrer vos modifications.

click Done

Désormais, vos visiteurs peuvent effectuer une recherche par contenu de commentaire et par nom d'auteur.

Activer la recherche par champs personnalisés de publication

Pour rendre les champs personnalisés consultables sur votre site sans plug-in, ajoutez le code suivant au fichier functions.php de votre thème :

/*
 * ----------------------------------------------------------
 *
 * Search by Post Custom Fields
 *
 * ----------------------------------------------------------
 */
 
 
/**
 * Joins the postmeta and posts tables.
 *
 * @global $wpdb
 *
 * @param string $join  The JOIN clause.
 * @param object $query The current WP_Query instance.
 *
 * @return string The JOIN clause.
 */
function search_custom_meta_posts_join( $join, $query ) {
 
	global $wpdb;
 
	if ( ! is_main_query() || ! is_search() ) {
		return $join;
	}
 
	$join .=' LEFT JOIN '.$wpdb->postmeta. ' ON '. $wpdb->posts . '..post_id ';
 
	return $join;
}
 
add_filter( 'posts_join', 'search_custom_meta_posts_join', 10, 2 );
 
/**
 * Modify the WHERE clause to include searches against postmeta.
 *
 * @global $wpdb
 *
 * @param string   $where The WHERE clause.
 * @param WP_Query $query The current WP_Query instance.
 *
 * @return string The WHERE clause.
 */
function search_custom_meta_posts_where( $where ) {
 
	global $wpdb;
 
	if ( ! is_main_query() || ! is_search() ) {
		return $where;
	}
 
	$where = preg_replace(
		"/\(\s*" . $wpdb->posts . ".post_title\s+LIKE\s*(\'[^\']+\')\s*\)/",
		"(" . $wpdb->posts . ".post_title LIKE $1) OR (" . $wpdb->postmeta . ".meta_value LIKE $1)", $where );
 
	return $where;
}
 
add_filter( 'posts_where', 'search_custom_meta_posts_where', 10, 2 );
 
/**
 * Prevent search results duplicates.
 *
 * @param string   $distinct The DISTINCT clause.
 * @param WP_Query $query    The current WP_Query instance.
 *
 * @return string The DISTINCT clause.
 */
function search_custom_meta_posts_distinct( $distinct, $query ) {
 
	if ( ! is_main_query() || ! is_search() ) {
		return $distinct;
	}
 
	return 'DISTINCT';
}
 
add_filter( 'posts_distinct', 'search_custom_meta_posts_distinct', 10, 2 );

Une fois cela fait, appuyez sur le bouton Mettre à jour le fichier en bas de l'éditeur pour enregistrer vos modifications.

press Done

Désormais, vos visiteurs peuvent rechercher des publications à l'aide de champs personnalisés.

Dans cet article, vous avez appris comment créer une recherche personnalisée sur votre site sans plugin et pourquoi utiliser un plugin pour cet objectif est beaucoup plus pratique.

Nous espérons que cela vous aidera à prendre une décision et à choisir la méthode que vous préférez utiliser sur votre site.

Prêt à personnaliser la recherche sur votre site en quelques clics ? Vous pouvez commencer avec SearchWP ici.

Vous cherchez un moyen de créer un thème personnalisé pour votre site ? Consultez notre tutoriel étape par étape sur la façon de créer un thème WordPress personnalisé.

Vous souhaitez personnaliser votre page de résultats de recherche ? Suivez notre guide pour personnaliser votre page de résultats de recherche WordPress.