X

Comment afficher ou masquer les widgets sur des pages spécifiques dans WordPress

Snippets by IsItWP

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.

Commentaires   laisser une réponse

  1. 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

    1. Are you adding an array to the snippet?

  2. 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 🙂

    1. You may want to double check that 552 is the correct id. If it is, you may want to reach out to WooCommerce support.

  3. Could you let e know how to change the snippet so that I can hide several widgets on specific pages?

  4. Awesome Joel! I’ll be looking forward to seeing more of what you’ve been working on.

  5. Very useful code. Thanks for sharing.

    1. 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.

  6. I like it. Thanks for sharing.

    Saves installing another plugin.

    1. Very true brad, nice and simple snippet!

Ajouter un commentaire

Nous sommes heureux que vous ayez choisi de laisser un commentaire. N'oubliez pas que tous les commentaires sont modérés conformément à notre privacy policy, et que tous les liens sont en nofollow. N'utilisez PAS de mots-clés dans le champ du nom. Engageons une conversation personnelle et constructive.

WordPress Launch Checklist

L'ultime liste de contrôle pour le lancement de WordPress

Nous avons rassemblé tous les éléments essentiels de la liste de contrôle pour le lancement de votre prochain site Web WordPress dans un ebook pratique.
Oui, envoyez-moi le gratuit !