Menambahkan kolom 'urutan menu' ke layar admin jenis pos kustom

33

Saya ingin menggunakan menu orderatribut untuk mengontrol pemesanan untuk jenis posting khusus yang akan digunakan untuk tujuan tertentu.

Cukup mudah untuk menambahkan ini ke CPT via supports => array('page-attributes')tetapi bagaimana cara mengekspos nilai urutan menu pada layar daftar admin untuk CPT ini?

anu
sumber

Jawaban:

48

OK - pada akhirnya ternyata cukup sederhana - karena saya punya semacam gangguan mental - menu_order adalah variabel dalam $postobjek (terima kasih kepada @brady untuk mengingatkan saya tentang itu).

@ scribu tentang membuat nilai kolom yang dapat diurutkan kemudian memberikan sisanya.

Jadi, dengan asumsi jenis posting kustom disebut header_text , ini adalah fungsi dan kait yang diperlukan:

Tambahkan kolom baru untuk pesanan

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

Berikan nilai kolom

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

Atur kolom agar dapat diurutkan

/**
* 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
sumber
Di WP 3.1, manage_edit - $ {post_type} _columns telah digantikan oleh manage _ $ {post_type} _posts_columns: codex
ptriek
Apakah benar-benar tidak ada cara untuk menjadikan ini pemesanan default? Suka Halaman?
Howdy_McGee
7

Sudah terlalu lama, tetapi hanya untuk catatan, Anda dapat menampilkan opsi 'urutan menu' di admin, hanya dengan memasukkan 'atribut halaman' dalam array opsi 'mendukung'. Sebagai contoh:

    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
sumber
2
Orang yang memposting pertanyaan sudah mengetahui 'atribut halaman'. Itu tidak harus menunjukkan nilai urutan halaman dengan cara yang diperlukan.
s_ha_dum
Saya memiliki atribut halaman di dukungan untuk jenis posting kustom, yang menambahkan urutan menu ke sidebar ketika mengedit salah satu dari jenis posting kustom, tetapi ketika melihat daftar semua item dalam jenis posting kustom di admin wp tidak tampilkan kolom urutan menu. Apakah ada hal lain yang diperlukan untuk membuatnya ditampilkan? Opsi di bawah layar untuk tanggal kolom adalah satu-satunya pilihan dan yang dicentang.
cchiera
-3

Anda harus mendaftarkan CPT Anda dengan:

'hierachical' => true
ungestaltbar
sumber
Bukankah itu hanya memungkinkan Anda untuk menentukan induk untuk item di layar edit - Saya sudah mencobanya, dan tidak ada bedanya dengan layar daftar
anu
1
maaf, tidak sadar Anda ingin menambahkan kolom khusus ke daftar ... mungkin ini memberi Anda titik untuk memulai: shibashake.com/wordpress-theme/add-custom-post-type-columns
ungestaltbar