Adicionando a coluna 'ordem do menu' à tela de administrador do tipo de postagem personalizada

33

Desejo usar o menu orderatributo para controlar a ordem de um tipo de postagem personalizado que será usado para uma finalidade específica.

É fácil adicionar isso ao CPT via supports => array('page-attributes')mas como expor o valor do pedido do menu na tela de listagem do administrador para esse CPT?

anu
fonte

Respostas:

48

OK - no final acabou sendo bastante simples - como eu tinha algum tipo de bloqueio mental - menu_orderé uma variável no $postobjeto (obrigado a @brady por me lembrar disso).

A publicação de @ scribu sobre a criação de valores de coluna classificáveis fornece o restante.

Portanto, supondo que o tipo de postagem personalizado seja chamado header_text, estas são as funções e ganchos necessários:

Adicione uma nova coluna para o 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 os valores da coluna

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

Defina a coluna para ser classificada

/**
* 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
fonte
No WP 3.1, manage_edit - $ {post_type} _columns foi suplantado por gerenciar _ $ {post_type} _posts_columns: codex
ptriek
Realmente não existe uma maneira de tornar isso o pedido padrão? Como páginas?
Howdy_McGee
7

Já faz muito tempo, mas apenas para o registro, você pode exibir a opção 'ordem do menu' no administrador, incluindo 'atributos da página' na matriz de opções 'suporta'. Por exemplo:

    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
fonte
2
A pessoa que postou a pergunta já conhece os 'atributos da página'. Ele não deve mostrar o valor do pedido da página da maneira necessária.
S23d12
Eu tenho atributos de página nos suportes para o tipo de postagem personalizado, que adiciona ordem de menu à barra lateral ao editar um desses tipos de postagem personalizados, mas ao exibir a lista de todos os itens no tipo de postagem personalizada em wp admin, isso não acontece mostra a coluna da ordem do menu. É necessário algo mais para mostrar? Em opções de tela para colunas, a data é a única opção e está marcada.
cchiera 20/09
-3

Você precisa registrar seu CPT com:

'hierachical' => true
ungestaltbar
fonte
Isso não apenas permite que você especifique um pai para o item na tela de edição - Eu tentei isso, e isso não faz diferença para a tela listando
anu
1
desculpe, você não percebeu que deseja adicionar colunas personalizadas à lista ... talvez isso lhe dê um ponto de partida: shibashake.com/wordpress-theme/add-custom-post-type-columns
ungestaltbar