NB : Faire une sauvegarde de votre thème, de votre fichier et/ou votre base de données avant d’ajouter ces fonctions tutoriels.

Trier les Post Types dans les colonnes admin WordPress
Facile

---- Cet article a été modifié : 15 mai 2021

Dans ce tutoriel, nous allons voir comment trier dans notre admin WordPress, les résultats de notre post type, comme par exemple les trier avec une meta key du post type par odre numérique.

Exemple, vous souhaitez trier le post type emplois et de les trier par l’ID de l’emploi du plus grand au plus petit.
Dans un premier temps nous allons construire nos colonnes désirés sur notre tableau du post type emplois.

Construisons notre colonne id-emploi. Il faut pour que ce soit considérer dans le post type, changer emplois par le nom de votre Post Type.

//////////////////////////////////// Admin columns Informations Post Type /////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////
add_filter( 'manage_emplois_posts_columns', 'themespress_custom_mycpt_columns' );
function themespress_custom_mycpt_columns( $columns ) {
  $columns['id-emploi'] = __( 'Id de l'emploi', 'themespress' );
  return $columns;
}

On n’affiche nos résultats dans la colonne, en faisant notre série d’instructions, si on souhaite ajouter plusieurs colonnes.

add_filter( 'manage_emplois_posts_columns', 'themespress_custom_edit_mycpt_columns' );
function themespress_custom_edit_mycpt_columns( $columns ) {
//////////////////////////////////// Admin columns Informations Post Type /////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////
  switch ( $column ) {
    case 'id-emploi' :
	// On appelle notre meta key
        echo get_post_meta( $post_id, 'id-emploi', true );
	break;
    }
}

On fait notre parse_query qui va nous permettre de trier nos emplois par ID du plus grand au plus petit. Nous donnons la condition que si on n’est pas dans l’admin, return.

add_filter( 'parse_query', 'themespress_custom_post_sort' );
function themespress_custom_post_sort($query) {
 
    if ( ! is_admin() )
        return $query;
 
    global $current_screen;
    if ( isset( $current_screen ) && 'emplois' === $current_screen->post_type ) {
        $query->query_vars['orderby']  = 'meta_value';
        $query->query_vars['meta_key'] = 'id-emploi';
        $query->query_vars['order']    = 'DESC';
    }
}

Leave a Reply

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

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>