Saya mati-matian mencari cara (cara apa pun) untuk mengatur "opsi layar" default dan urutan metabox melalui file functions.php. Adakah yang bisa membantu di sini?
Pembaruan 2014: Bagi mereka yang hanya perlu memesan ulang kotak meta, lihat jawaban Nabil di bawah ini .
rinogo
Jawaban:
23
Mengatur urutan kotak meta pada halaman edit posting
Anda harus menghapus kotak meta, dan menambahkannya lagi dalam urutan yang Anda inginkan.
Untuk menonaktifkan kotak meta: (sesuaikan dengan kebutuhan Anda, lihat id metabox dalam kode html untuk mengetahui nama mana yang harus Anda gunakan sebagai parameter fungsi pertama)
function my_remove_meta_boxes(){
remove_meta_box('postcustom','post','core');
remove_meta_box('commentsdiv','post','core');...}
add_action('admin_menu','my_remove_meta_boxes');
Setelah menghapusnya, Anda dapat menggunakan fungsi add_meta_box untuk menambahkannya di posisi baru: http://codex.wordpress.org/Function_Reference/add_meta_box . Urutan kotak meta tergantung pada urutan di mana Anda memanggil fungsi add_meta_box. Misalnya: dengan cuplikan kode berikut, kotak meta komentar akan berada di depan kotak meta bidang khusus.
Maaf, mungkin saya tidak menjelaskan diri saya dengan benar. Saya merujuk ke kotak meta pada halaman edit posting di area admin serta mengatur jumlah posting default untuk ditampilkan pada halaman daftar posting admin.
NetConstructor.com
1
jadi secara teknis ini bukan pertanyaan, itu benar-benar 2 pertanyaan?
Tom J Nowell
Saya mengubah jawaban saya. Beri tahu saya jika Anda membutuhkan detail lebih lanjut.
sorich87
@ sorich87 terima kasih atas tanggapan Anda namun dari apa yang saya ingat tidak ada cara untuk menentukan urutan yang tepat dari masing-masing metabox atau ada di sana? Mungkin saya harus sedikit lebih spesifik. Saya pada dasarnya mencari berbagai potongan kode yang memungkinkan saya mengatur berbagai opsi untuk semua pengguna tanpa harus masuk ke setiap akun. Contoh: mengatur urutan tepat kotak meta pada halaman edit posting, mengatur judul kolom mana yang muncul pada halaman daftar posting, mengatur hasil default yang akan ditampilkan pada halaman daftar posting ... hal-hal seperti itu. Terima kasih sebelumnya.
NetConstructor.com
Saya mengubah jawaban saya.
sorich87
9
Pada contoh berikut, ganti {CPT}dengan nama posting jenis, seperti post, page, book, event, imaginary, foobar... Jadi jika Anda memiliki jenis posting yang bernama event, Anda akan perlu menambahkan filter untuk get_user_option_meta-box-order_event.
add_filter('get_user_option_meta-box-order_{CPT}','metabox_order');function metabox_order( $order ){return array('normal'=> join(",",
array(// vvv Arrange here as you desire'customdiv-{CPT}','authordiv','slugdiv',)),);}
Catatan:
Bersamaan dengan itu normal, Anda juga dapat memiliki sidedanadvanced
Nilai-nilai ini adalah div id yang dipisahkan koma, Anda dapat mengambil dengan melihat kode sumber halaman atau Anda bisa menebak
Setiap metabox yang ada tidak termasuk dalam pesanan khusus Anda akan ditambahkan secara otomatis di akhir daftar Anda.
Saya agak bingung dengan {CPT}nomenklaturnya; untuk memperjelas, jika Anda memiliki jenis posting bernama event, Anda perlu menambahkan filter untuk get_user_option_meta-box-order_event.
Jawaban:
Mengatur urutan kotak meta pada halaman edit posting
Anda harus menghapus kotak meta, dan menambahkannya lagi dalam urutan yang Anda inginkan.
Untuk menonaktifkan kotak meta: (sesuaikan dengan kebutuhan Anda, lihat id metabox dalam kode html untuk mengetahui nama mana yang harus Anda gunakan sebagai parameter fungsi pertama)
Setelah menghapusnya, Anda dapat menggunakan fungsi add_meta_box untuk menambahkannya di posisi baru: http://codex.wordpress.org/Function_Reference/add_meta_box . Urutan kotak meta tergantung pada urutan di mana Anda memanggil fungsi add_meta_box. Misalnya: dengan cuplikan kode berikut, kotak meta komentar akan berada di depan kotak meta bidang khusus.
Anda mungkin ingin melihat file wp-admin / edit-form-advanced.php
Mengatur judul kolom mana yang muncul di halaman daftar posting
Anda perlu menggunakan filter manage _ {$ post_type} _posts_columns. Misalnya: cuplikan berikut akan menghapus kolom komentar.
Pengaturan hasil default akan ditampilkan pada halaman daftar posting
Gunakan filter 'edit _ {$ post_type} _per_page' dan 'edit_posts_per_page'.
Untuk menargetkan jenis posting tertentu:
gunakan
add_filter( 'edit_{post type}_per_page', 'my_edit_post_per_page' );
misalnyaadd_filter( 'edit_post_per_page', 'my_edit_post_per_page' );
untuk posting,add_filter( 'edit_page_per_page', 'my_edit_post_per_page' );
untuk halaman.atau gunakan kondisi dalam fungsi Anda. misalnya:
function my_edit_post_per_page ($ per_page, $ post_type) {
sumber
Pada contoh berikut, ganti
{CPT}
dengan nama posting jenis, sepertipost
,page
,book
,event
,imaginary
,foobar
... Jadi jika Anda memiliki jenis posting yang bernamaevent
, Anda akan perlu menambahkan filter untukget_user_option_meta-box-order_event
.Catatan:
normal
, Anda juga dapat memilikiside
danadvanced
sumber
{CPT}
nomenklaturnya; untuk memperjelas, jika Anda memiliki jenis posting bernamaevent
, Anda perlu menambahkan filter untukget_user_option_meta-box-order_event
.