¿Cómo ordenar las entradas de un tipo de contenido personalizado por fecha DESC en el panel de Administración?

17 ene 2013, 11:00:33
Vistas: 32.2K
Votos: 9

He creado un nuevo tipo de entrada llamado "Video".

Cuando creo una entrada para este tipo de contenido, las entradas se ordenan por título ASC.

¿Es posible ordenar las entradas por fecha DESC por favor?

register_post_type('Videos', array(
    'labels' => array(
        'name' => _x('Videos', 'nombre general del tipo de entrada'),
        'singular_name' => _x('Video', 'nombre singular del tipo de entrada'),
        'add_new' => _x('Añadir', 'Video'),
        'add_new_item' => __('Añadir un video'),
        'edit_item' => __('Editar un video'),
        'new_item' => __('Nuevo video'),
        'view_item' => __('Ver el enlace del 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')
   )
 );
2
Comentarios

Por favor, añade el código donde muestras los posts, no agregas el parámetro order_by cuando registras el post_type, solo cuando consultas los posts

Pontus Abrahamsson Pontus Abrahamsson
17 ene 2013 16:25:57

Oh lo siento, me gustaría añadir el order_by en el Administrador de Wordpress

Steffi Steffi
17 ene 2013 18:07:57
Todas las respuestas a la pregunta 4
3
19

De acuerdo, puedes simplemente engancharte al filtro pre_get_posts y verificar is_admin. Coloca esto en tu tema o plugin:

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

    // Obtener el tipo de post desde la consulta
    $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');

También cambiaría el post_type "Videos" a minúsculas como "video".

17 ene 2013 19:04:14
Comentarios

Vale, ¡gracias Pontus! Voy a probar esto. ¿Pero por qué esto no está configurado por defecto? Porque para "Posts" ya está configurado como "orderby DESC"

Steffi Steffi
17 ene 2013 23:40:26

¿Funcionó para ti?

Pontus Abrahamsson Pontus Abrahamsson
18 ene 2013 10:15:42

no es por defecto, porque está configurado como "Nombre" en orden alfabético por defecto (o slug supongo)

Nabeel Khan Nabeel Khan
4 may 2016 01:51:22
0
10

El ejemplo anterior deshabilita la función de ordenación al hacer clic en las columnas.

Ordenable para múltiples tipos de entradas personalizadas:

function wpse_819391_post_types_admin_order( $wp_query ) {
  if ( is_admin() && !isset( $_GET['orderby'] ) ) {     
    // Obtiene el tipo de entrada desde la consulta
    $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');
10 dic 2013 01:40:23
0

Utilicé un enfoque un poco diferente:

    add_action('pre_get_posts', 'filtrar_lista_de_entradas'); 

    function filtrar_lista_de_entradas($query)  {
        //$pagenow contiene el nombre de la página actual que se está viendo
         global $pagenow, $typenow;  
        if(current_user_can('edit_posts') && ('edit.php' == $pagenow))  { 
            //método set() de la variable global $query para establecer parámetros
            $query->set('orderby', 'date');
            $query->set('order', 'desc');
        }
    }
28 nov 2019 13:39:20
0

Cambia el argumento hierarchical a false o elimina esa línea para usar el valor por defecto que es false.

'hierarchical' => false,

https://developer.wordpress.org/reference/functions/register_post_type/#parameters

15 jun 2024 18:38:56