Ajouter un champ ACF dans la liste admin des posts WordPress

Développement web | 0 commentaires

Présentation

Pour réaliser une galerie photo facile à administrer pour un client, j’ai utilisé l’extension WordPress ACF pour créer un type de post personnalisé que j’ai appelé « gallery ». Je l’ai configuré pour conserver les champs « titre » et « catégorie » et retirer le contenu et les étiquettes. Toujours avec ACF j’ai ensuite ajouté un champ de type image appelé « photo » permettant d’uploader ses photos ou de les ajouter depuis la médiathèque qui à été configuré pour retourner le tableau de l’image.

Page d’ajout d’une photo

Afin de lui simplifier la gestion de cette galerie, j’ai souhaité afficher un aperçu des photos dans la liste des posts de son panneau d’administration. Pour ce faire, j’ai intégré le code suivant dans une extension créée pour son site mais il est aussi possible de l’insérer dans le fichier fonctions.php de votre thème.

Liste des photos dans le panneau d’administration

Code

<?php
/**
 * Add a column names photo_thumbnail to the table
 */
function add_thumbnail_columns($columns) {
    $new_columns = array();
    foreach($columns as $key => $value) {
        if ($key == 'title') { // Put the Thumbnail column before the title column
            $new_columns['photo_thumbnail'] = __('Thumbnail');
        }
        $new_columns[$key] = $value;
    }
    return $new_columns;
}
add_filter('manage_edit-gallery_columns', 'add_thumbnail_columns');

/**
 * Output ACF photo in the photo_thumbnail column
 */
function thumbnail_columns_content($column, $post_id) {
    if ($column == 'photo_thumbnail') {
	$post = get_post($post_id);
	setup_postdata($post);
	$image = get_field('photo');
	echo '<a href="'.get_edit_post_link().'"><img src="'.$image['sizes']['thumbnail'].'" /></a>';
	wp_reset_postdata();
    }
}
add_filter('manage_gallery_posts_custom_column' , 'thumbnail_columns_content', 10 , 2);

Explications

La fonction add_thumbnail_columns() permet d’insérer la colonne appelée photo_thumbnail entre la case ç cocher et le titre de la photo.

La fonction thumbnail_columns_content() permet d’insérer la photo dans la ligne avec le lien vers l’éditeur.

0 commentaires

Soumettre un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *