/home/florian

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

Posts Commentaires



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");
?>

Ecrire un commentaire





IMPORTANT! Pour valider votre envoi, il faut que vous répondiez à cette simple question mathématique (afin de savoir si vous n'êtes pas un robot spammeur :-)

Combien font 9 + 10 + 6 ?
Please leave these two fields as-is:

Votre commentaire sera accompagné de votre gravatar si vous en avez un.