From 3cccbb76e871d17174e65c13922e19c5776673fa Mon Sep 17 00:00:00 2001 From: Nonimart Date: Wed, 13 Aug 2025 09:43:47 +0200 Subject: [PATCH] REFACTOR Reorganising columns settings in 2 separates files for each post type --- functions.php | 3 +- includes/{columns.php => article-columns.php} | 38 ++++++++++ includes/revues-columns.php | 73 +++++++++++++++++++ 3 files changed, 113 insertions(+), 1 deletion(-) rename includes/{columns.php => article-columns.php} (55%) create mode 100644 includes/revues-columns.php diff --git a/functions.php b/functions.php index 34d1c63..ea09b43 100644 --- a/functions.php +++ b/functions.php @@ -4,7 +4,8 @@ require_once(__DIR__ . '/includes/errorlog.php'); require_once(__DIR__ . '/includes/init.php'); require_once(__DIR__ . '/includes/post_types.php'); require_once(__DIR__ . '/includes/logos.php'); -require_once(__DIR__ . '/includes/columns.php'); +require_once(__DIR__ . '/includes/article-columns.php'); +require_once(__DIR__ . '/includes/revues-columns.php'); require_once(__DIR__ . '/includes/revue.php'); require_once(__DIR__ . '/includes/auteurs.php'); require_once(__DIR__ . '/includes/article.php'); diff --git a/includes/columns.php b/includes/article-columns.php similarity index 55% rename from includes/columns.php rename to includes/article-columns.php index 2a6e952..531dbe1 100644 --- a/includes/columns.php +++ b/includes/article-columns.php @@ -15,6 +15,7 @@ function carhop_articles_add_acf_posts_columns($columns) unset($columns['date']); } $customColumns = array( + 'revue_issue_number' => 'Numéro', 'revue' => 'Revue', ); $new_admin_col_arrays = array_slice($columns, 0, 2, true) + $customColumns + array_slice($columns, 2, count($columns) - 2, true); @@ -30,7 +31,18 @@ add_filter('manage_articles_posts_columns', 'carhop_articles_add_acf_posts_colum function carhop_articles_handle_posts_custom_columns($column) { $post_id = get_the_ID(); + $related_revue_ID = get_field('related_revue', $post_id); + if ($column == 'revue_issue_number') { + // $revue_issue_number = get_field('issue_number', $related_revue_ID); + $revue_issue_number = get_post_meta($post_id, 'revue_issue_number', true); + + if (!isset($revue_issue_number)) { + echo '×'; + } else { + echo $revue_issue_number; + } + } if ($column == 'revue') { $revue_id = get_field('related_revue', $post_id); if (!isset($revue_id)) { @@ -42,3 +54,29 @@ function carhop_articles_handle_posts_custom_columns($column) } } add_action('manage_articles_posts_custom_column', 'carhop_articles_handle_posts_custom_columns', 10, 2); + + +// **** RENDRE LA COLONNE TRIABLE +function carhop_articles_make_columns_sortable($columns) +{ + $columns['revue_issue_number'] = 'revue_issue_number'; + return $columns; +} +add_filter('manage_edit-articles_sortable_columns', 'carhop_articles_make_columns_sortable'); + + +// **** LOGIQUE DE TRI PERSONNALISÉ +function carhop_articles_custom_orderby($query) +{ + if (!is_admin()) { + return; + } + + $orderby = $query->get('orderby'); + + if ('revue_issue_number' == $orderby) { + $query->set('meta_key', 'revue_issue_number'); + $query->set('orderby', 'meta_value_num'); + } +} +add_action('pre_get_posts', 'carhop_articles_custom_orderby'); diff --git a/includes/revues-columns.php b/includes/revues-columns.php new file mode 100644 index 0000000..529a8a5 --- /dev/null +++ b/includes/revues-columns.php @@ -0,0 +1,73 @@ + 'Numéro', + 'publication_date' => 'Date de publication', + ); + $new_admin_col_arrays = array_slice($columns, 0, 2, true) + $customColumns + array_slice($columns, 2, count($columns) - 2, true); + return array_merge($new_admin_col_arrays); +} +add_filter('manage_revues_posts_columns', 'carhop_revues_add_posts_columns'); + +// **** RENDRE LA COLONNE TRIABLE +function carhop_revues_make_columns_sortable($columns) +{ + $columns['revue_issue_number'] = 'revue_issue_number'; + return $columns; +} +add_filter('manage_edit-revues_sortable_columns', 'carhop_revues_make_columns_sortable'); + +// **** LOGIQUE DE TRI PERSONNALISÉ +function carhop_revues_custom_orderby($query) +{ + if (!is_admin()) { + return; + } + + $orderby = $query->get('orderby'); + + if ('revue_issue_number' == $orderby) { + $query->set('meta_key', 'issue_number'); + $query->set('orderby', 'meta_value_num'); + } +} +add_action('pre_get_posts', 'carhop_revues_custom_orderby'); + + + +/* ---------------------------------------------------------------------- + GESTION DE LA VALEUR DE CHAQUE COLONNE + ------------------------------------------------------------------------*/ +function carhop_revues_handle_posts_custom_columns($column) +{ + $post_id = get_the_ID(); + + + if ($column == 'publication_date') { + $post_date = get_the_date('F Y', $post_id); + echo $post_date; + } + if ($column == 'revue_issue_number') { + $revue_issue_number = get_field('issue_number', $post_id); + if (!isset($revue_issue_number)) { + echo '×'; + } else { + echo $revue_issue_number; + } + } +} +add_action('manage_revues_posts_custom_column', 'carhop_revues_handle_posts_custom_columns', 10, 2);