Dodanie kolumny „kolejność menu” do niestandardowego ekranu administratora typu posta

33

Chcę użyć tego menu orderatrybutu do kontrolowania zamawiania niestandardowego typu postu, który będzie używany do określonego celu.

Dodanie tego do CPT jest dość łatwe, supports => array('page-attributes')ale jak mogę wyświetlić wartość zamówienia w menu na ekranie z listą administracyjną dla tego CPT?

anu
źródło

Odpowiedzi:

48

OK - w końcu okazało się dość proste - ponieważ miałem pewien blok mentalny - menu_orderjest zmienną w $postobiekcie (dzięki @brady za przypomnienie mi o tym).

Post @ scribu na temat tworzenia sortowalnych wartości kolumn następnie daje resztę.

Zakładając, że zostanie wywołany niestandardowy typ słupka header_text, potrzebne są następujące funkcje i zaczepy:

Dodaj nową kolumnę dla zamówienia

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

Renderuj wartości kolumn

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

Ustaw kolumnę, aby była sortowalna

/**
* 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
źródło
W WP 3.1, manage_edit - $ {post_type} _columns zostało zastąpione przez manage _ $ {post_type} _posts_columns: codex
ptriek
Czy naprawdę nie ma sposobu, aby ustawić to jako domyślne? Lubić strony?
Howdy_McGee
7

Minęło zbyt wiele czasu, ale dla samego rekordu możesz wyświetlić opcję „porządek menu” w panelu administratora, po prostu włączając „atrybuty strony” w tablicy opcji „obsługuje”. Na przykład:

    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
źródło
2
Osoba zamieszczająca pytanie zna już „atrybuty strony”. Nie może pokazywać wartości kolejności stron w wymagany sposób.
s_ha_dum
Mam atrybuty strony w obsłudze niestandardowego typu postu, który dodaje kolejność menu do paska bocznego podczas edycji jednego z tych niestandardowych typów postów, ale podczas przeglądania listy wszystkich elementów w niestandardowym typie postów w wp admin nie robi pokaż kolumnę kolejności menu. Czy jest coś jeszcze, żeby to pokazać? Pod opcjami ekranu dla kolumn data jest jedyną opcją i jest sprawdzana.
cchiera
-3

Musisz zarejestrować swój CPT w:

'hierachical' => true
ungestaltbar
źródło
Czy nie pozwala to tylko określić rodzica elementu na ekranie edycji - próbowałem i nie ma to znaczenia dla ekranu listy
anu
1
Niestety, nie zdawał sobie sprawy, chcesz dodać niestandardowe kolumny do listy ... może to daje punkt, aby rozpocząć: shibashake.com/wordpress-theme/add-custom-post-type-columns
ungestaltbar