How to order posts of a custom post type by date DESC in dashboard Admin?

I created a new post type named “Video”.

When I create post for the post type, posts is ordered by title ASC.

Read More

Is it possible to order posts by date DESC please ?

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')
   )
 );

Related posts

Leave a Reply

3 comments

  1. Alright, You can just hook into the filter pre_get_posts and check is_admin.
    Put this in your theme or 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');
    

    I also would shange the post_type “Videos” to lowercase like “video”.

  2. The example above disables the ordering feature by clicking columns.

    Sortable & for multiple custom post types:

    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');
    
  3. I used a bit different approach:

        add_action('pre_get_posts', 'filter_posts_list'); 
    
        function filter_posts_list($query)  {
            //$pagenow holds the name of the current page being viewed
             global $pagenow, $typenow;  
            if(current_user_can('edit_posts') && ('edit.php' == $pagenow))  { 
                //global $query's set() method for setting
                $query->set('orderby', 'date');
                $query->set('order', 'desc');
            }
        }