Ce tutoriel WordPress est entièrement gratuit.
Merci de désactiver votre bloqueur de pub ! =)

Ajouter des colonnes dans l’admin WordPress

Pour rendre la liste des Posts plus pratique et lisible

La liste des Posts dans l’admin est assez basique. Elle montre le titre, l’auteur, la date, les catégories…

liste-posts-admin-wordpress

Mais cette liste ne montre pas certaines informations qu’on voudrait voir sans avoir à cliquer sur le Post (comme l’image ou les champs personnalisés) et montre peut-être des infos dont on a pas besoin (comme l’auteur).

Ajouter et retirer des colonnes

Il faut utiliser la fonction manage_post_posts_columns. Sachez que le premier « post » dans le nom de la fonction est une variable et qui définit le type de Post qu’on veut modifier. Donc si on a Custom Post Type qui s’appelle « projet », on utiliserait la fonction manage_projet_posts_columns.

Imaginons qu’on veuille supprimer la colonne « auteur » et ajouter une pour l’image et une pour un champ personnalisé « couleur ».

function bbx_columns( $column ) {
  unset( $column['author'] );
  $column['image'] = 'Image';
  $column['color'] = 'Couleur';
  return $column;
}
add_filter( 'manage_post_posts_columns', 'bbx_columns' );

Bon, on a ajouté 2 colonnes, mais on mets quoi dedans ?

Définir le contenu des nouvelles colonnes

Là on passe par la fonction manage_post_posts_custom_column. Là pareil : le mot « post » peut être remplacé par le nom d’un Custom Post Type.

function bbx_rows( $column, $post_id ) {
  $custom_fields = get_post_custom( $post_id );
  switch ( $column ):
    case 'image':
      the_post_thumbnail( 'thumbnail' );
      break;
    case 'color':
      if ( $custom_fields['color'][0] != '' ):
        echo '#' . $custom_fields['color'][0] . '<br><span style="background: #' . $custom_fields['color'][0] . '; display: inline-block; height: 20px; width: 20px;"></span>';
      else:
        echo 'Pas de couleur définie';
      endif;
      break;
    default:
      break;
  endswitch;
}
add_action( 'manage_post_posts_custom_column', 'bbx_rows', 10, 2 );

Résultat :

ajouter-colonnes-admin-wordpress

Libre à vous de définir d’autres colonnes, de choisir le code HTML qui sera affiché…