Ce blog a déménagé et parle maintenant uniquement anglais.

This blog has moved and now only speaks English.

blog.floriancargoet.com

See you there!

/home/florian

le blog de florian cargoet : du linux, du web et du logiciel libre



Plugin WordPress : Categories as Widgets

6 February, 2010 (21:40) | Wordpress | Florian Cargoet

Voici un tout petit plugin WordPress qui ne fait pas grand chose mais qui m’est utile. C’est un simple widget pour sidebar qui permet de lister les catégories. A la différence du widget Catégories fourni de base qui liste les catégories et éventuellement les sous catégories, celui-ci simule plusieurs widgets. Il génère une liste par catégorie racine (les catégories au sommet de la hiérarchie) et les éléments des listes sont les sous catégories.

Voyez vous même la différence :


Le code

Comme d’habitude, sur GitHub ou directement ici vu que c’est plutôt léger :

<?php
/*
Plugin Name: Categories as Widgets
Plugin URI: http://fcargoet.evolix.net/
Description: Display each top-level category as a widget with its sub categories
Author: Florian Cargoët
Version: 0.1
Author URI: http://fcargoet.evolix.net/
*/
 
function cat_as_widget($args){
    extract($args);
 
    echo $before_widget;
    echo $before_title . $category->name . $after_title;
 
    $cat_args = array('child_of'=>$category->cat_ID,'hierarchical' => false,'title_li'=>'');
 
    echo '<ul>';
    wp_list_categories(apply_filters('widget_categories_args', $cat_args));
    echo '</ul>';
 
    echo $after_widget;
}
 
 
 
function widget_CategoriesAsWidgets($args) {
 
    $categories = get_categories();
 
    foreach($categories as $category){
        if($category->parent==0){ //only toplevel cats
            $args['category']=$category;
            cat_as_widget($args);
        }
    }
}
 
function categoriesAsWidgets_init()
{
    register_sidebar_widget(__('Categories As Widgets'), 'widget_CategoriesAsWidgets');
}
 
add_action("plugins_loaded", "categoriesAsWidgets_init");
?>

Commentaires

Commentaire de La meduse
le 6 July 2010, 15:13

salut, et merci pour ton ptit bout de code bien sympa.
J’aimerais savoir comment inserer une fonction include et/exclude dans ton widget…?