Saya mati-matian mencari cara (cara apa pun) untuk menetapkan "opsi layar" dan urutan metabox melalui file functions.php. Adakah yang bisa membantu di sini?
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 Anda memanggil fungsi add_meta_box. E.g .: dengan cuplikan kode berikut, kotak meta komentar akan berada di depan kotak meta bidang khusus.
function my_add_meta_boxes( $post_type, $post ) {
if ( ('publish' == $post->post_status || 'private' == $post->post_status) && post_type_supports($post_type, 'comments') )
add_meta_box('commentsdiv', __('Comments'), 'post_comment_meta_box', $post_type, 'normal', 'core');
if ( post_type_supports($post_type, 'custom-fields') )
add_meta_box('postcustom', __('Custom Fields'), 'post_custom_meta_box', $post_type, 'normal', 'core');
...
}
add_action( 'add_meta_boxes', 'my_add_meta_boxes' );
Anda mungkin ingin melihat file wp-admin/edit-form-advanced.php
Anda perlu menggunakan filter manage _ {$ post_type} _posts_columns. E.g .: cuplikan berikut akan menghapus kolom komentar.
function my_remove_columns( $posts_columns ) {
unset( $posts_columns['comments'] );
return $posts_columns;
}
add_filter( 'manage_post_posts_columns', 'my_remove_columns' );
Gunakan filter 'edit _ {$ post_type} _per_page' dan 'edit_posts_per_page'.
function my_edit_post_per_page( $per_page, $post_type ) {
$edit_per_page = 'edit_' . $post_type . '_per_page';
$per_page = (int) get_user_option( $edit_per_page );
if ( empty( $per_page ) || $per_page < 1 )
$per_page = 1;
return $per_page;
}
add_filter( 'edit_posts_per_page', 'my_edit_post_per_page' );
Untuk menargetkan jenis posting tertentu:
gunakan add_filter( 'edit_{post type}_per_page', 'my_edit_post_per_page' );
mis. add_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) {
if( $post_type == 'post' ) {
$edit_per_page = 'edit_' . $post_type . '_per_page';
$per_page = (int) get_user_option( $edit_per_page );
if ( empty( $per_page ) || $per_page < 1 )
$per_page = 1;
}
return $per_page;