le MEMO du WEB développeur
••• Wordpress •••  Liste des Mémos, astuces et bonnes pratiques

Liste des catégories Wordpress. Exclure certaines catégories

Collez le code suivant dans le fichier functions.php du thème de votre blog Wordpress afin de rajouter un widget qui vous permettra d'afficher une liste des catégories de votre blog, avec un lien vers les catégories, mais en supprimant les catégories que vous ne souhaitez pas voir apparaître.

Ceci en ajoutant les catégories indésirables en paramètre de la fonction wp_list_categories

wp_list_categories("orderby=name&exclude=25,24,26&title_li=")

title_li= permet de ne pas afficher le titre par défaut de la liste aposé par la fonction wp_list_categories

Après ajout de ce code dans votre fichier functions.php, allez dans votre administration Wordpress > Apparence>Widget et vous allez voir apparaître l'item "Catégories spécifiques" que vous pourrez ajouter à l'emplacement de votre choix offert par votre thème.

<?php
/** Début Widget pour afficher une liste des catégories de votre blog Wordpress grâce à wp_list_categories en enlevant certaines catégories indésirables***/

class WidgetSelectionCategories extends WP_Widget {
    function WidgetSelectionCategories()
    {
     $options = array(
         "classname" => "widget-sel-categorie",
         "description" => "Liste de cat&eacute;gories  sp&eacute;cifiques"
        );
     $this->WP_widget("widget-sel-categorie", "Cat&eacute;gories sp&eacute;cifiques", $options);
    }

    function widget($args, $instance)
    {    
       extract($args);
       $title =  $titlePost;        
       echo $before_widget;
       echo '<div id="widget_cat_sel">';
         if ($title)
           echo '<div class="">'. $title .'</div>';
         else
           echo $before_title . 'Les cat&eacute;gories sp&eacute;cifiques' . $after_title;             
         wp_list_categories("orderby=name&exclude=25,24,26&title_li="); // Ici j'exclue les catégories d'id 24, 25 et 26                            
       echo '</div>';
       echo $after_widget;    
    }

    function update($new_instance, $old_instance)
    {
        $instance = $old_instance;
        $instance['title'] = strip_tags($new_instance['title']);   
        return $instance;
    }

    function form($instance)
    {
        $title = esc_attr($instance['title']);      
    ?>
        <p>
            <label for="<?php echo $this->get_field_id('title'); ?>">
                <?php echo 'Titre:'; ?>
                <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo $title; ?>" />
            </label>
        </p>       
    <?php
    }
}

function AjoutWidgetSelectionCategories() {
    register_widget('WidgetSelectionCategories' );
}
add_action('widgets_init', 'AjoutWidgetSelectionCategories');

/** fin ajout widget ***/
?>

 

publié le 04/07/2013 par Memo Web
Commentaire :
Bonjour, Merci pour cet article ! :) Cela dit, comment créer un menu déroulant des catégories non exclues ? Avec votre code, on obtient une liste brute, et ce serait pas mal de les avoir au sein d'un menu déroulant :)

merci encore !
par inconnu, le 03/04/2014
Bonjour, Bravo pour cet articles. c 'st génial et ca fonctionne superbement. vous venez de me soulager de 3 semaines d 'essaies pour faire cela. je ne suis pas developpeur pro donc, pas facile mais je m 'accroche a essayer de coder plutot par passion. je débute . si vous me permettez une question ... il t'il possible de répeter ce code afin de créer une second widget pour l'ensemble des catégories d'une autre page ? merci infiniment pour votre aide.
par inconnu, le 21/01/2014
Bonjour, vous pouvez ajouter autant de widgets que vous le souhaitez, pour cela il faut dupliquer ce code en personnalisant le nom des fonctions AjoutWidgetSelectionCategories et WidgetSelectionCategories, ainsi que de la class WidgetSelectionCategories.
Vous adaptez ensuite dans votre code les paramètres de la fonction wp_list_categories() aux catégories qui vous intéressent... J'espère que c'est clair ?...
par tarabusk, le 21/01/2014
Commenter le Mémo :

Recadrer une miniature (thumbnail) WordPress
Problème d'accès à l'admin WordPress MultiSite
Retrouver la valeur des variables d'URL après un rewriteRule sous Wordpress
Boucle sur les Custom Post Types
Taraza - Free Wordpress Theme 2014 - Customized Home Page
Export d'articles scoopit vers WordPress : Lien vers l'article d'origine
Plugin WordPress BackWPUp, bug : Impossible de créer le répertoire
Migration d'un site Wordpress : Perte des menus et des widgets
Déclarer un fichier présent dans un répertoire du thème enfant Wordpress
Récupérer l'URL de l'image à la une (featured image) d'un article ou d'une page WordPress
Ajoutez vos propres Mémos sur MEMO-WEB

Il suffit de vous créer un compte sur le site

Vous pourrez choisir un thème parmis l'une des catégories proposées par MEMO-WEB.

Rédigez votre Mémo.
Après validation par MEMO-WEB, il sera mis en ligne.
Ajouter vos Mémos