Vous cherchez un moyen d’afficher ou de cacher 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 les widgets sur des pages spécifiques dans WordPress.
La première chose à faire est d’obtenir le nom de l’ID du widget que vous souhaitez définir. Vous pouvez le faire en regardant 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 le widget “pages” que sur la page de contact. N’oubliez pas que is_page
accepte également un tableau de noms et d’identifiants de pages.
Instructions:
Tout ce que vous avez à faire est d’ajouter ce code dans le fichier functions.php de votre thème ou dans un plugin spécifique à votre 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; } } }
Note : Si c’est la première fois que vous ajoutez des extraits de code dans WordPress, veuillez consulter notre guide sur la façon d’ajouter correctement des extraits de code dans WordPress, afin de ne pas casser accidentellement votre site.
Si vous avez aimé cet extrait de code, n’hésitez pas à consulter nos autres articles sur le site comme : 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.
love this tutorial snippet, thank you!
unfortunately, i got 2 warnings:
array_merge(): Argument #2 is not an array
array_merge(): Argument #1 is not an array
it did remove the sidebars from conditional page however, even w errors.
i’m still learning PHP and not sure how to include array $args, if you could please advise… that would be wonderful.
also wondering if there’s a way to remove 1(one) or more specific widget(s), from specified sidebar without removing all.
either way, thanks for posting this snippet <3
Are you adding an array to the snippet?
Hey 🙂
Your code worked for me on all the wordpress pages, but this code didn’t work for me on the WooCommerce store page. I have a basic product search bar widget in the header on every page, but I only want it to be on the STORE page. My woocommerce store page id is 552, so I used this 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’ ) { // change ‘pages’ to widget name
if ( !is_page( ‘552’ ) ) { // change page name
return false;
}
}
}
When I add another page id like the About Us page id is 551 …. if I set this id, then your code will hide the product search bar on every site except the About Us page. But when I type the id of the STORE page which is 552, then the search bar is missing from all the pages, also missing from the store page of woocommerce. Can you help me please? Many thanks 🙂
You may want to double check that 552 is the correct id. If it is, you may want to reach out to WooCommerce support.
Could you let e know how to change the snippet so that I can hide several widgets on specific pages?
Awesome Joel! I’ll be looking forward to seeing more of what you’ve been working on.
Very useful code. Thanks for sharing.
No problem Sajan, Joel Worsham is going be contributing to wpsnipp.com so I’m sure he will have lots of great snippets to come.
I like it. Thanks for sharing.
Saves installing another plugin.
Very true brad, nice and simple snippet!