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?

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

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

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.