Mengatur panel edit admin & posisi metabox dan visibilitas untuk SEMUA pengguna dan admin

10

Setup WP 3.3 saya melibatkan beberapa jenis posting dan panel edit khusus dengan plugin Advanced Custom Fields (yang menciptakan banyak metabox) dan plugin lain seperti panel metabox SEO, koneksi Posts2Posts Scribu dan banyak lagi.

Masalahnya adalah, urutan tampilan panel-panel ini seringkali cukup acak (bahkan jika Adavanced Custom Fields menawarkan semacam pemesanan, tetapi tidak selalu berhasil, karena plugin lain tidak memilikinya dan lebih jauh lagi saya mungkin ingin mengubah metabox posisi menurut jenis posting).

Sekarang, Wordpress memungkinkan setiap administrator / pengguna dengan hak yang tepat untuk mengatur metabox di panel edit seperti yang dia inginkan. Namun ... setiap admin harus mengatur sendiri !! Apakah tidak ada cara untuk menyiapkan pemesanan default / tetap atau membiarkan superadmin atau satu admin khususnya untuk mengatur posisi panel untuk SEMUA ORANG?

Saya memiliki setidaknya 4 admin dan beberapa editor / penulis ... tidak masuk akal saya harus mengatur panel mereka masuk dengan SETIAP akun mereka ... itu bodoh dan memakan waktu, dan membingungkan bagi pengguna yang mengerti wordpress non savvy .

Apakah ada plugin atau snipet kode yang dapat membantu kasus saya?

Terima kasih

unfulvio
sumber
seseorang bertanya pertanyaan yang sama di forum wp 1 tahun yang lalu, topiknya dibiarkan tanpa jawaban, tidak diselesaikan dan beberapa admin menutup utas wordpress.org/support/topic/…
unfulvio

Jawaban:

7

Anda dapat menghapus kotak meta default dengan remove_meta_box dan menambahkannya kembali di posisi yang berbeda dengan add_meta_box:

add_action('do_meta_boxes', 'wpse33063_move_meta_box');

function wpse33063_move_meta_box(){
    remove_meta_box( 'postimagediv', 'post', 'side' );
    add_meta_box('postimagediv', __('Featured Image'), 'post_thumbnail_meta_box', 'post', 'normal', 'high');
}

Jawaban di atas berasal dari utas berikut: Bagaimana cara mengubah posisi default kotak meta WP?

MEMPERBARUI

Jika frustrasi utama adalah murni jumlah kotak meta yang tersedia, dan Anda tidak berpikir setiap pengguna membutuhkan semua kotak, Anda dapat menyembunyikannya dari peran pengguna yang lebih rendah atau semua peran menggunakan kode berikut yang ditambahkan ke file functions.php. CATATAN - Metode ini hanya menyembunyikan kotak meta dan tidak menonaktifkan atau menghapusnya.

//Hide Post Page Options from all except Administrator
if (!current_user_can('administrator')){
function hide_post_page_options() {
global $post;
$hide_post_options = "<style type=\"text/css\"> #wptotwitter_div, wpseo_meta, #al2fb_meta, #misc-publishing-actions .misc-pub-section label, #misc-publishing-actions .misc-pub-section #post-status-display, #misc-publishing-actions .misc-pub-section .edit-post-status, #visibility.misc-pub-section, .al2fb_post_submit, #slugdiv, #edit-slug-box, #screen-options-link-wrap { display: none; }</style>";
print($hide_post_options);
}
add_action( 'admin_head', 'hide_post_page_options'  );
}

//Hide Post Page Options from ALL users
function hide_all_post_page_options() {
global $post;
$hide_all_post_options = "<style type=\"text/css\"> #taxonomy-category li.hide-if-no-js, #commentstatusdiv, #wypiekacz_sectionid, #postexcerpt, #trackbacksdiv, #postcustom, #yarpp_relatedposts { display: none !important; }</style>";
print($hide_all_post_options);
}
add_action( 'admin_head', 'hide_all_post_page_options'  );

Pada dasarnya, Anda hanya perlu memasukkan id id atau kelas yang dipisahkan oleh koma. Saya baru saja meninggalkan milik saya di sana untuk menunjukkan bahwa semua jenis kotak meta dan area dapat disembunyikan.

#wptotwitter_div - WP to Twitter plugin
#wpseo_meta - Wordpress SEO by Yoastplugin
#al2fb_meta, .al2fb_post_submit - Add Link to Facebookplugin
#misc-publishing-actions .misc-pub-section label, #misc-publishing-actions .misc-pub-section #post-status-display, #misc-publishing-actions .misc-pub-section .edit-post-status, #visibility.misc-pub-section - Default Wordpress Publish Status and Visibility
#slugdiv, #edit-slug-box - The post slug
#screen-options-link-wrap - The "Screen Options" tab at the top of the page
#taxonomy-category li.hide-if-no-js - The "Most Used" categories tab
#commentstatusdiv - The comments on the post
#wypiekacz_sectionid - Wypiekacz plugin
#postexcerpt - Post excerpt
#trackbacksdiv - Trackbacks
#postcustom - Custom post fields
#yarpp_relatedposts - Yet Another Related Posts Plugin

(Saya meletakkan contoh di "kode" karena SE menggunakan # untuk mewakili tajuk)

Saya pikir saya akan memberikan ini kepada Anda karena, seperti Anda, saya menjadi sangat frustrasi dengan semua kotak meta, tetapi pada akhirnya saya pikir adalah banyaknya kotak yang tidak diinginkan. Untuk "penulis" di situs web saya, sekarang sangat efisien: Judul, Konten, simpan sebagai konsep, terbitkan sekarang atau jadwal yang akan diposting, tag, kategori dan gambar unggulan ... Tidak ada kekacauan sama sekali.

Travis Pflanz
sumber
Itu tidak memecahkan masalah saya, ingin melakukan ini menyalin pengaturan wysiwyg saya ke semua pengguna (jadi saya mengatur tampilan panel sekali dan untuk semua); alasan: beberapa plugin menambahkan metabox mereka sendiri; juga, untuk berbagai jenis posting saya ingin menempatkan metabox sesuai. Add_meta_box hanya memiliki normal / tinggi / rendah ... dengan banyak metabox yang tidak membantu. Bidang khusus lanjutan setidaknya memiliki nomor pemesanan, tetapi tidak berfungsi dengan baik di hadapan metabox lain. Cara terbaik untuk melakukan ini adalah wysiwyg ...
unfulvio
Apakah Anda menggunakan dan membutuhkan semua kotak meta tambahan yang dibuat oleh plugin? Saya bertanya karena, bagi saya, semua kotak meta yang tidak dibutuhkan adalah yang selalu membuat saya frustrasi. Jika itu memang kasus Anda, saya telah membuat UPDATE di atas bahwa mungkin jika Anda hanya menyembunyikan kotak-kotak yang tidak diperlukan untuk peran pengguna tertentu, masalah Anda dapat dihilangkan ... Itu pasti terjadi pada saya!
Travis Pflanz
Mengapa Anda tidak menghapus metabox oleh pengguna daripada hanya menyembunyikannya dengan gaya?
Stephen Harris
Tidak semua yang saya hapus adalah kotak meta, beberapa adalah bagian dari kotak meta, jadi saya pikir saya hanya akan menggunakan satu fungsi, bukan dua.
Travis Pflanz
Travis, terima kasih telah menghabiskan lebih banyak untuk ini. Namun solusi CSS tidak menyelesaikan masalah pemindahan metabox (solusi Anda sebelumnya untuk memfilter dan memposisikan ulang sebagian tidak). Seperti yang saya sebutkan sebelumnya, setup saya memiliki banyak jenis posting khusus dengan metabox khusus yang saya buat dan harus ada di sana. Sebenarnya ada sangat sedikit yang ingin saya sembunyikan (tetapi mereka akan berguna untuk beberapa admin, jadi saya tidak ingin menghapusnya secara permanen dan bersembunyi dengan CSS bukanlah langkah yang baik). Saya belum menemukan solusi yang memuaskan untuk masalah ini. Terima kasih atas upaya Anda.
unfulvio
1

Sudahkah Anda melihat ke plugin Adminimize ?

Ini memungkinkan Anda untuk mengaktifkan / menonaktifkan kotak meta per peran pengguna dan juga mengkonfigurasi posisi. Dibutuhkan sedikit untuk mengkonfigurasinya dan dokumentasinya lumayan, walaupun tidak jelas di beberapa tempat tetapi harus mampu menangani apa yang Anda gambarkan.

JCL1178
sumber
Plugin itu tidak memungkinkan Anda untuk "mengkonfigurasi posisi", hanya visibilitas. Ini adalah plugin yang sangat bagus, tho ..
frnhr
Saya akan mengaku tidak melihat dengan seksama pada plugin tetapi jika itu dapat memanipulasi satu, itu mungkin dapat dibuat untuk memanipulasi yang lain melalui beberapa penambahan kode. Membuat titik peluncuran yang bagus.
JCL1178