Comment changer l'ordre des messages dans Admin?

8

Comment puis-je modifier l'ordre des publications dans le tableau de bord d'administration, afin qu'elles s'affichent par ordre alphabétique selon le titre, plutôt que selon la dernière en date?

urok93
la source

Réponses:

16

Si vous ne souhaitez pas toujours cliquer sur la colonne "Titre" pour trier vos articles par titre, vous pouvez placer ce code soit dans le functions.phpfichier de votre thème WordPress actuellement actif , soit dans un plugin. Cela triera toujours automatiquement vos messages pour vous, vous n'avez donc pas à cliquer sur la colonne de titre à chaque fois.

Vous pouvez l'utiliser pour définir l'ordre de tri par défaut sur les types de publication.

/* Sort posts in wp_list_table by column in ascending or descending order. */
function custom_post_order($query){
    /* 
        Set post types.
        _builtin => true returns WordPress default post types. 
        _builtin => false returns custom registered post types. 
    */
    $post_types = get_post_types(array('_builtin' => true), 'names');
    /* The current post type. */
    $post_type = $query->get('post_type');
    /* Check post types. */
    if(in_array($post_type, $post_types)){
        /* Post Column: e.g. title */
        if($query->get('orderby') == ''){
            $query->set('orderby', 'title');
        }
        /* Post Order: ASC / DESC */
        if($query->get('order') == ''){
            $query->set('order', 'ASC');
        }
    }
}
if(is_admin()){
    add_action('pre_get_posts', 'custom_post_order');
}

Vous pouvez utiliser certains de ces exemples de conditions ...

/* Effects all post types in the array. */
if(in_array($post_type, $post_types)){

}

/* Effects only a specific post type in the array of post types. */
if(in_array($post_type, $post_types) && $post_type == 'your_post_type_name'){

}

/* Effects all post types in the array of post types, except a specific post type. */
if(in_array($post_type, $post_types) && $post_type != 'your_post_type_name'){

}

Si vous souhaitez appliquer ce tri à TOUS les types de publication, qu'ils soient ou non "intégrés" ...

Change ça: $post_types = get_post_types(array('_builtin' => true), 'names');

Pour ça: $post_types = get_post_types('', 'names');

Michael Ecklund
la source
Est-il correct d'utiliser dans la fonction plutôt que de vérifier avant l'actionif ( ! is_admin ) { return; }
urok93
Je suppose que tu pourrais faire ça.
Michael Ecklund
Vous devez ajouter une "return $ query;" avant la fin de la fonction, sinon cela ne fonctionnera pas dans les éditions wordpress ultérieures.
Jobst
Je pense qu'un plugin exécute cette fonction et remplace ma fonction personnalisée. Y a-t-il un crochet pour s'assurer que mon code est exécuté plutôt que les plugins?
Thomas_Hoadley
7

Ah, cliquez sur ce petit truc de titre pour basculer le tri alphabétique ....

entrez la description de l'image ici

Markratledge
la source
-1

Vous pouvez toujours ajouter à l'adresse:

/edit.php?post_type=properties&orderby=date&order=desc

Vortex-On
la source
Pourquoi post_typeest-il personnalisé ici, donnez à OP une réponse générique .. nous pouvons commander le titre dans l'ordre en cliquant sur la colonne Titre
bravokeyl