web-dev-qa-db-fra.com

Comment commander les posts d'un type de post personnalisé par date DESC dans Admin du tableau de bord?

J'ai créé un nouveau type de message nommé "Vidéo".

Lorsque je crée un article pour le type d'article, les articles sont classés par title ASC.

Est-il possible de commander des messages par date DESC s'il vous plaît?

register_post_type('Videos', array(
    'labels' => array(
        'name' => _x('Videos', 'post type general name'),
        'singular_name' => _x('Video', 'post type singular name'),
        'add_new' => _x('Ajouter', 'Video'),
        'add_new_item' => __('Ajouter une video'),
        'edit_item' => __('Éditer une video'),
        'new_item' => __('Nouvelle video'),
        'view_item' => __('Voir le lien de la video'),
        //'search_items' => __(' Video'),
        'menu_name' => 'Video'
    ),
    'public' => true,
    'show_ui' => true,
    'capability_type' => 'post',
    'hierarchical' => true,
    'rewrite' => array('slug' => 'video'),
    'query_var' => true,
    'supports' => array(
        'title',
        'editor' => false,
        'excerpt' => false,
        'trackbacks' => false,
        'custom-fields',
        'comments' => false,
        'revisions' => false,
        'thumbnail' => false,
        'author' => false,
        'page-attributes' => false,
    ),
    'taxonomies' => array('post_tag')
   )
 );
5
Steffi

Très bien, vous pouvez simplement vous connecter au filtre pre_get_posts et vérifier is_admin . Mettez ceci dans votre thème ou plugin:

function wpse_81939_post_types_admin_order( $wp_query ) {
  if (is_admin()) {

    // Get the post type from the query
    $post_type = $wp_query->query['post_type'];

    if ( $post_type == 'Videos') {

      $wp_query->set('orderby', 'date');

      $wp_query->set('order', 'DESC');
    }
  }
}
add_filter('pre_get_posts', 'wpse_81939_post_types_admin_order');

Je voudrais aussi changer le post_type "Videos" en minuscule comme "video".

11
Pontus Abrahamsson

L'exemple ci-dessus désactive la fonctionnalité de classement en cliquant sur les colonnes.

Triable et pour plusieurs types de publication personnalisés:

function wpse_819391_post_types_admin_order( $wp_query ) {
  if ( is_admin() && !isset( $_GET['orderby'] ) ) {     
    // Get the post type from the query
    $post_type = $wp_query->query['post_type'];
    if ( in_array( $post_type, array('videos','news','text') ) ) {
      $wp_query->set('orderby', 'date');
      $wp_query->set('order', 'DESC');
    }
  }
}
add_filter('pre_get_posts', 'wpse_819391_post_types_admin_order');
4
cenk