Pour des types de contenu personnalisés on aura parfois besoin de pousser la personnalisation de l'administration un peu plus loin en ajoutant des colonnes supplémentaires dans le listing de l'administration. Par exemple on souhaite mettre en place l'affichage d'une miniature dans nos listing de bien pour aider l'administrateur à sélectionner le bien qu'il souhaite éditer.

Dans un premier temps nous allons ajouter la colonne à la liste des colonnes gràce au filtre manage_{$post_type}_posts_columns. Ce filtre devra renvoyer un tableau associatif.

add_filter('manage_post_posts_columns', function ($columns) {
    $newColumns = [];
    foreach($columns as $k => $v) {
        if ($k === 'date') {
            $newColumns['sponso'] = 'Article sponsorisé ?';
        }
        $newColumns[$k] = $v;
    }
    return $newColumns;
});

Ensuite il faudra indiquer à WordPress comment remplir notre colonne à l'aide de l'action manage_{$post_type}_posts_custom_column.

add_filter('manage_post_posts_custom_column', function ($column, $postId) {
    if ($column === 'sponso') {
        if (!empty(get_post_meta($postId, SponsoMetaBox::META_KEY, true))) {
            $class = 'yes';
        } else {
            $class = 'no';
        }
        echo '<div class="bullet bullet-' . $class . '"></div>';
    }
}, 10, 2);