_x('offline', 'post'), 'public' => true, 'exclude_from_search' => false, 'show_in_admin_all_list' => true, 'show_in_admin_status_list' => true, 'label_count' => _n_noop('Unread (%s)', 'Unread (%s)'), )); } add_action('init', 'custom_post_status'); function add_to_post_status_dropdown() { global $post; // Ajoute une option 'offline' au menu déroulant des statuts echo ""; } add_action('post_submitbox_misc_actions', 'add_to_post_status_dropdown'); // Ajouter un filtre pour afficher les posts avec le statut 'offline' add_filter('views_edit-artisans', function ($views) { global $wpdb; $post_type = 'artisans'; $status = 'offline'; // Compte le nombre de posts avec le statut 'offline' $count = $wpdb->get_var($wpdb->prepare( "SELECT COUNT(*) FROM $wpdb->posts WHERE post_type = %s AND post_status = %s", $post_type, $status )); if ($count > 0) { $class = (isset($_GET['post_status']) && $_GET['post_status'] === $status) ? 'current' : ''; $views[$status] = sprintf( '%s (%d)', $post_type, $status, $class, __('Offline', 'metiers-patrimoine-theme'), $count ); } return $views; }); // Ajouter un statut personnalisé dans la colonne des statuts, uniquement dans la vue "Tous" function add_custom_post_status($post_states, $post) { // Vérifier si on est dans l'admin et si le post appartient au CPT 'artisans' if ('artisans' === $post->post_type) { global $pagenow; // Vérifier si on est sur la page d'index des articles (Tous les articles) if ('edit.php' === $pagenow && !isset($_GET['post_status'])) { // Ajouter le statut "Publié" si l'article est publié if ('publish' === $post->post_status) { $post_states[] = __('Publié', 'metiers-patrimoine-theme'); // Affiche "Publié" } // Ajouter votre statut personnalisé (ex : "offline") si c'est le cas if ('offline' === get_post_status($post->ID)) { $post_states[] = __('Offline', 'metiers-patrimoine-theme'); // Affiche "En attente" } } } return $post_states; } add_filter('display_post_states', 'add_custom_post_status', 10, 2);