Désactiver la fonction de recherche de WordPress
En fonction de la thématique de votre site Internet, il peut être utile de désactiver la possibilité de faire une recherche sur un site WordPress.
Lorsque vous utilisez WordPress comme un site vitrine, la fonction de recherche peut devenir inutile. Et bien, si vous avez eu envie de vous débarrasser de la fonctionnalité de recherche, alors cette astuce est pour vous. Dans cet article, nous allons vous montrer comment faire pour désactiver la fonction de recherche dans WordPress.
Copier le code ci-dessous dans le fichier functions.php
de votre thème :
[pastacode lang=”php” message=”” highlight=”” provider=”manual”]
function search_filter_query( $query, $error = true ) {
if ( !is_search() ) return;
$query->is_search = false;
$query->query_vars['s'] = false;
$query->query['s'] = false;
// to error
if ( $error )
$query->is_404 = true;
}
if ( !is_admin() ) {
add_action( 'parse_query', 'search_filter_query' );
add_filter( 'get_search_form', create_function( '$a', "return null;" ) );
}
[/pastacode]
Remarque : si vous définissez $error à true, alors l’utilisateur sera redirigé vers votre page d’erreur 404. Si vous le définissez à false, alors l’utilisateur reste sur la page où il a essayé de lancer la recherche.
Source : WPEngineer
12 Commentaires
Salut.
Merci pour cette astuce, ça m’a servi dans un projet.
Quelques erreurs à rectifier cependant :
Ce n’est pas [s] mais [‘s’] qu’il faut mettre.
De plus il faut vérifier que l’on n’est pas dans l’administration sinon cela désactive aussi la recherche dedans.
A+
PS : avec $error à false on ne reste pas sur la page où on était (bien que l’url ne change pas effectivement) mais on affiche les articles du site, on a donc le contenu de la “page blog”.
Sorry, j’avais pas vu qu’on ne pouvait pas utiliser la balise pre chez toi :s
Faire gaffe aux double-guillemets autour de return null; qui ont été changés à la fin pour le coup.
Merci Greg. J’ai mis à jour l’article avec ta remarque ;)
Bonjour Jonathan
J’ai mis le code à la fin du fichier functions.php et il ne se passe rien. Je crains de mettre la pagaille si je le mets ailleurs… mais ça n’est pas vital ;-)
Le code fonctionne très bien, il faut C/C le code dans le fichier functions.php à la racine de votre FTP :)
#Jo
A la racine du ftp ? T’es sûr de ton coup là ? ;)
Oula, non pas du tout à la racine du FTP, c’est l’habitude de taper ça pour autre chose =_=
C’est bien le fichier functions.php à la racine du thème !
Question du débutant : c’est où exactement la racine du thème functions.php dans Twenty Eleven, parce qu’il y a des commentaires, du code…
“la racine du thème” est l’emplacement du fichier. Ca ne correspond pas au contenu du fichier ;)
Mettez le code en début de fichier, juste en dessous de la balise <?php
Je viens d’essayer après la balise php mais il ne se passe rien… forget it… merci tout de même !
Bonjour ,
J’utilise wordpress-3.6-fr_FR sous windows XP
je viens d’essayer avec le thème Twenty Thirteen .
j’ai pris le fichier functions.php qui se trouve à l’emplacement : wordpresswp-contentthemestwentythirteen
Juste après
MAIS malheureusement j’ai toujours ma barre de recherche qui s’affiche en tête de page .
@iaconseil: Attention, ce code désactive la fonction de recherche. C’est-à-dire, le traitement PHP qui se trouve derrière le processus.
Ça ne supprime pas la barre de recherche en elle-même !
Pour cela, vous devez supprimer le formulaire dans le code HTML.