Comment connaitre la date de création des catégorie d’articles dans WordPress ?

Pour un projet, j’ai eu besoin de connaitre la date de création des catégories dans WordPress. Alors attention, on ne peut pas connaitre celle qui ont étés créés avant cette manip, car WordPress, à la base, ne les enregistre pas. Par contre on peut faire en sorte de le savoir pour les prochaines qui seront créés.

Pour ajouter la date de création des catégories dans WordPress, il faut ajouter du code personnalisé dans le fichier functions.php de votre thème https://coinmark.cam/.

Voici le code :

// Connaitre date création catégorie
// Enregistre la date de création lors de la création d'une catégorie
function save_category_creation_date($term_id, $tt_id, $taxonomy) {
    if ($taxonomy == 'category') {
        add_term_meta($term_id, 'category_creation_date', current_time('mysql'));
    }
}
add_action('created_term', 'save_category_creation_date', 10, 3);

// Ajoute une colonne pour afficher la date de création
function add_category_creation_date_column($columns) {
    $columns['creation_date'] = __('Date de création', 'text_domain');
    return $columns;
}
add_filter('manage_edit-category_columns', 'add_category_creation_date_column');

// Remplit la colonne avec la date de création
function fill_category_creation_date_column($content, $column_name, $term_id) {
    if ($column_name == 'creation_date') {
        $creation_date = get_term_meta($term_id, 'category_creation_date', true);
        if ($creation_date) {
            $content = esc_html(date('d/m/Y', strtotime($creation_date)));
        } else {
            $content = __('Inconnu', 'text_domain');
        }
    }
    return $content;
}
add_filter('manage_category_custom_column', 'fill_category_creation_date_column', 10, 3);

// Rendre la colonne est triable
function add_sortable_columns($columns) {
    $columns['creation_date'] = 'creation_date';
    return $columns;
}
add_filter('manage_edit-category_sortable_columns', 'add_sortable_columns');

// Gestion du tri des colonnes personnalisées
function sort_category_by_creation_date($clauses, $wp_query) {
    global $wpdb;

    if (isset($wp_query->query['orderby']) && $wp_query->query['orderby'] == 'creation_date') {
        $clauses['join'] .= " LEFT JOIN {$wpdb->termmeta} AS tm ON t.term_id = tm.term_id AND tm.meta_key = 'category_creation_date'";
        $clauses['orderby'] = "tm.meta_value " . (strtoupper($wp_query->get('order')) == 'ASC' ? 'ASC' : 'DESC');
    }

    return $clauses;
}
add_filter('terms_clauses', 'sort_category_by_creation_date', 10, 3);

// Fin connaitre date création catégorie

Ce code affichera la date dans la page « https://ndd.fr/wp-admin/edit-tags.php?taxonomy=category » de votre site (dans le menu gauche : Articles => Catégories)

A++

Laurent Cipicchia

Écrit dans Programmation, WordPress par Laurent Cipicchia

Laisser un commentaire

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

Comment connaitre la date de création des catégorie d’articles dans WordPress ?

par Laurent Cipicchia Temps de lecture : 2 min
0