Agregar la columna 'orden de menú' a la pantalla de administrador de tipo de publicación personalizada

29

Quiero usar el atributo menu order para controlar el orden de un tipo de publicación personalizado que se usará para un propósito específico.

Es bastante fácil agregar esto al CPT a través de supports => array('page-attributes') , pero ¿cómo expongo el valor del pedido del menú en la pantalla de listado de administradores para este CPT?

    
pregunta anu 29.02.2012 - 21:06

3 respuestas

44

Bien, al final resultó ser bastante simple, ya que había tenido algún tipo de bloqueo mental: menu_order es una variable en el objeto $post (gracias a @brady por recordármelo).

La publicación de

@ scribu creando valores de columna clasificables proporciona el resto.

Entonces, suponiendo que el tipo de publicación personalizada se llame header_text , estas son las funciones y enlaces que se necesitan:

Agregar una nueva columna para el pedido

/**
* add order column to admin listing screen for header text
*/
function add_new_header_text_column($header_text_columns) {
  $header_text_columns['menu_order'] = "Order";
  return $header_text_columns;
}
add_action('manage_edit-header_text_columns', 'add_new_header_text_column');

Representar los valores de columna

/**
* show custom order column values
*/
function show_order_column($name){
  global $post;

  switch ($name) {
    case 'menu_order':
      $order = $post->menu_order;
      echo $order;
      break;
   default:
      break;
   }
}
add_action('manage_header_text_posts_custom_column','show_order_column');

Establezca la columna para que se pueda ordenar

/**
* make column sortable
*/
function order_column_register_sortable($columns){
  $columns['menu_order'] = 'menu_order';
  return $columns;
}
add_filter('manage_edit-header_text_sortable_columns','order_column_register_sortable');
    
respondido por el anu 01.03.2012 - 20:24
6

Ha sido demasiado largo, pero solo para el registro, puede mostrar la opción 'orden de menú' en el administrador, simplemente al incluir 'atributos de página' en la matriz de opciones 'compatible'. Por ejemplo:

    register_post_type( 'columna',
    array(
        'labels' => array(
            'name' => __( 'Columnas' ),
            'singular_name' => __( 'Columna' ),
        ),
        'supports' => array( 'title', 'thumbnail', 'excerpt', 'page-attributes' ),
        'public' => true,
        'has_archive' => false,
        'menu_position'=>5
    )
);
    
respondido por el Juan Salas 23.11.2012 - 23:25
-3

Tienes que registrar tu CPT con:

'hierachical' => true
    
respondido por el ungestaltbar 29.02.2012 - 21:22

Lea otras preguntas en las etiquetas