post icon

[WordPress] Colonnes personnalisées dans l’administration

Lorsque vous administrez votre blog, vous souhaitez afficher les miniatures des articles directement dans la listes ? afficher des variables personnalisées ? ou bien afficher n’importe quel élément personnalisé ?

Voici une astuce pour ajouter des colonnes dans la liste des posts de votre administration.

Ajoutez dans le fichier fonction.php de votre thème :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
        // Déclaration des nouvelles colonnes
        add_filter('manage_posts_columns', 'register_my_custom_column');
        // Affichage des nouvelles colonnes
        add_filter('manage_posts_custom_column', 'show_my_custom_column', 10, 3);
       
        // Fonction de déclaration des nouvelles colonnes
        function register_my_custom_column($columns){
            return order_my_custom_column($columns, array(
                array(
                    'name'      => 'thumbnail',         // Identifiant unique de la colonne
                    'label'     => __('Thumbnail'),     // Nom de la colonne
                    'position'  => 1                    // Position de la colonne (-1 = fin, 0 = début)
                )
            ));                
        }
       
        // Fonction de l'ordre d'affichage des nouvelles colonnes
        function order_my_custom_column($columns, $items){
            foreach($items as $item){
                if($item['position'] != -1){
                    $tmp        = $columns;
                    $columns    = false;
                    $i      = 0;
                    foreach($tmp as $key=>$val){
                        if($i==$item['position']){
                            $columns[$item['name']] = $item['label'];
                        }
                        $columns[$key] = $val;
                        $i++;
                    }
                }else $columns[$item['name']] = $item['label'];
            }
            return $columns;               
        }
       
        // Fonction d'affichage des nouvelles colonnes
        function show_my_custom_column($name){
            global $post;
            switch($name){
                // Identifiant unique de la colonne
                case 'thumbnail':
                    // Affichage de la miniature de l'article
                    echo get_the_post_thumbnail($post->ID, array(100, 100));
                break;
            }
        }

Pour ajouter des colonnes dans les customs posts :

1
2
3
4
        // Déclaration des nouvelles colonnes
        add_filter('manage_{custom_post_type}_columns', 'register_my_custom_column');
        // Affichage des nouvelles colonnes
        add_filter('manage_{custom_post_type}_custom_column', 'show_my_custom_column', 10, 3);

Aucun commentaire.

Publier un commentaire