Vous cherchez un moyen d'afficher ou de masquer des widgets sur des pages spécifiques dans WordPress ? Bien qu'il existe probablement un plugin pour cela, nous avons créé un extrait de code rapide que vous pouvez utiliser pour afficher ou masquer des widgets sur des pages spécifiques dans WordPress.
La première chose que vous devrez faire est d'obtenir le nom de l'ID du widget que vous souhaitez définir. Vous pouvez le faire en visualisant la source de la page ou en utilisant un outil d'inspection web pour voir l'ID du widget. L'exemple actuel est configuré pour n'afficher que le widget principal 'pages' sur la page de contact uniquement. N'oubliez pas que is_page accepte également un tableau de noms et d'ID de pages.
Instructions :
Il vous suffit d'ajouter ce code au fichier functions.php de votre thème ou dans un plugin spécifique au site :
add_filter( 'widget_display_callback', 'hide_widget_pages', 10, 3 );
function hide_widget_pages( $instance, $widget, $args ) {
if ( $widget->id_base == 'pages' ) { // change 'pages' to widget name
if ( !is_page( 'contact' ) ) { // change page name
return false;
}
}
}
Remarque : Si c'est la première fois que vous ajoutez des extraits de code dans WordPress, veuillez consulter notre guide sur la manière d'ajouter correctement des extraits de code dans WordPress, afin de ne pas endommager accidentellement votre site.
Si vous avez aimé cet extrait de code, n'hésitez pas à consulter nos autres articles sur le site tels que : 30 façons de gagner de l'argent avec le blogging en ligne et comment créer un formulaire WordPress avec un sélecteur de date.
J'adore cet extrait de tutoriel, merci !
malheureusement, j'ai reçu 2 avertissements :
array_merge(): L'argument #2 n'est pas un tableau
array_merge(): L'argument #1 n'est pas un tableau
il a bien supprimé les barres latérales de la page conditionnelle cependant, même avec des erreurs.
j'apprends encore le PHP et je ne suis pas sûr de la façon d'inclure le tableau $args, si vous pouviez s'il vous plaît me conseiller... ce serait merveilleux.
je me demande aussi s'il existe un moyen de supprimer 1 (un) ou plusieurs widgets spécifiques, d'une barre latérale spécifiée sans tout supprimer.
dans tous les cas, merci d'avoir posté cet extrait <3
Ajoutez-vous un tableau à l'extrait ?
Salut 🙂
Ton code a fonctionné pour moi sur toutes les pages WordPress, mais ce code n'a pas fonctionné pour moi sur la page de la boutique WooCommerce. J'ai un widget de barre de recherche de produits basique dans l'en-tête sur chaque page, mais je ne veux qu'il soit que sur la page BOUTIQUE. L'identifiant de ma page de boutique WooCommerce est 552, j'ai donc utilisé ce code :
add_filter( ‘widget_display_callback’, ‘hide_widget_pages’, 10, 3 );
function hide_widget_pages( $instance, $widget, $args ) {
if ( $widget->id_base == ‘woocommerce_product_search’ ) { // changer ‘pages’ par le nom du widget
if ( !is_page( ‘552’ ) ) { // changer le nom de la page
return false;
}
}
}
Lorsque j'ajoute un autre identifiant de page comme la page À propos de nous, dont l'identifiant est 551... si je définis cet identifiant, votre code masquera la barre de recherche de produits sur tous les sites sauf la page À propos de nous. Mais lorsque je tape l'identifiant de la page BOUTIQUE qui est 552, la barre de recherche est manquante sur toutes les pages, et aussi manquante sur la page de boutique de woocommerce. Pouvez-vous m'aider s'il vous plaît ? Merci beaucoup :)
Vous voudrez peut-être vérifier que 552 est le bon identifiant. Si c'est le cas, vous voudrez peut-être contacter le support WooCommerce.
Pourriez-vous me dire comment modifier l'extrait afin que je puisse masquer plusieurs widgets sur des pages spécifiques ?
Génial Joel ! J'ai hâte de voir ce sur quoi vous avez travaillé.
Code très utile. Merci de l'avoir partagé.
Pas de problème Sajan, Joel Worsham va contribuer à wpsnipp.com, donc je suis sûr qu'il aura beaucoup de bons extraits à venir.
J'aime ça. Merci de l'avoir partagé.
Évite d'installer un autre plugin.
Très vrai brad, extrait sympa et simple !