Aggiunta della colonna "Ordine menu" alla schermata di amministrazione del tipo di messaggio personalizzato


33

Voglio usare l' menu orderattributo per controllare l'ordinamento per un tipo di post personalizzato che verrà utilizzato per uno scopo specifico.

È abbastanza facile aggiungerlo al CPT tramite supports => array('page-attributes')ma come posso esporre il valore dell'ordine del menu nella schermata dell'elenco di amministrazione per questo CPT?

Risposte:


48

OK - alla fine si è rivelato abbastanza semplice - dato che avevo avuto una sorta di blocco mentale - menu_orderè una variabile $postnell'oggetto (grazie a @brady per avermelo ricordato).

Il post di @ scribu sulla creazione di valori di colonna ordinabili quindi fornisce il resto.

Quindi, supponendo che venga chiamato il tipo di post personalizzato header_text, queste sono le funzioni e gli hook necessari:

Aggiungi una nuova colonna per l'ordine

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

Rendering dei valori di colonna

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

Imposta la colonna come ordinabile

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

In WP 3.1, manage_edit - $ {post_type} _columns è stato soppiantato da manage _ $ {post_type} _posts_columns: codex
ptriek

Esiste davvero un modo per rendere questo l'ordine predefinito? Ti piacciono le pagine?
Howdy_McGee

7

È passato troppo tempo, ma solo per la cronaca, è possibile visualizzare l'opzione "ordine di menu" nell'amministratore, semplicemente includendo "attributi di pagina" nella matrice di opzioni "supporta". Per esempio:

    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 che pubblica la domanda è già a conoscenza di "attributi di pagina". Non deve mostrare il valore dell'ordine delle pagine nel modo necessario.
s_ha_dum,

Ho attributi di pagina nei supporti per il tipo di post personalizzato, che aggiunge l'ordine dei menu alla barra laterale quando si modifica uno di quei tipi di post personalizzati, ma quando si visualizza l'elenco di tutti gli elementi nel tipo di post personalizzato in wp admin non lo fa mostra la colonna dell'ordine dei menu. C'è qualcos'altro necessario per farlo mostrare? Sotto le opzioni dello schermo per la data delle colonne è l'unica opzione che è selezionata.
cchiera,

-3

Devi registrare il tuo CPT con:

'hierachical' => true

Questo non ti consente solo di specificare un genitore per l'elemento nella schermata di modifica - l'ho provato e non fa alcuna differenza per la schermata di elenco
anu

1
scusa, non avevo
ungestaltbar
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.