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

33

Quiero usar el menu orderatributo para controlar el pedido 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 de orden del menú en la pantalla de listado de administrador para este CPT?

anu
fuente

Respuestas:

48

OK, al final resultó ser bastante simple, ya que había tenido algún tipo de bloqueo mental, menu_orderes una variable en el $postobjeto (gracias a @brady por recordarme eso).

La publicación de @ scribu sobre la creación de valores de columna ordenables luego da el resto.

Entonces, suponiendo que se llame al tipo de publicación personalizada header_text, estas son las funciones y los ganchos 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');

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

Establecer 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');
anu
fuente
En WP 3.1, manage_edit - $ {post_type} _columns ha sido suplantado por manage _ $ {post_type} _posts_columns: codex
ptriek
¿Realmente no hay forma de hacer que este sea el pedido predeterminado? ¿Como páginas?
Howdy_McGee
7

Ha pasado demasiado tiempo, 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 'soporta'. 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
    )
);
Juan salas
fuente
2
La persona que publica la pregunta ya conoce los "atributos de página". No debe mostrar el valor del orden de la página de la manera necesaria.
s_ha_dum
Tengo atributos de página en los soportes para el tipo de publicación personalizada, que agrega orden de menú a la barra lateral al editar uno de esos tipos de publicación personalizada, pero al ver la lista de todos los elementos en el tipo de publicación personalizada en wp admin no lo hace muestra la columna de orden del menú. ¿Se necesita algo más para que se muestre? Debajo de las opciones de pantalla para columnas, la fecha es la única opción y está marcada.
cchiera
-3

Debe registrar su CPT con:

'hierachical' => true
ungestaltbar
fuente
¿Eso no solo le permite especificar un padre para el elemento de la pantalla de edición - Lo he intentado, y no hace ninguna diferencia a la pantalla de lista
anu
1
lo siento, no me di cuenta de que quieres agregar columnas personalizadas a la lista ... tal vez esto te dé un punto para comenzar: shibashake.com/wordpress-theme/add-custom-post-type-columns
ungestaltbar