Jenis Posting Kustom: Cara menyingkirkan editor (-meta box)

9

Saya mempertanyakan bagaimana saya dapat menyingkirkan post-editor (visual + html). Saya mencoba untuk tidak mendaftarkan dukungan jenis posting, dan masih muncul (membatalkan pendaftaran berfungsi baik dengan setiap kotak meta default lainnya pada layar edit posting). Saya juga mencoba membatalkan pendaftaran dengan remove_meta_box, yang tidak berfungsi juga (berfungsi untuk yang lainnya kecuali kotak meta judul). Mungkin saya melewatkan sesuatu. Sudah mencari di web dan tidak dapat menemukan apa pun. Saya harap seseorang dapat memberi tahu saya. Terima kasih!

Ps. Saya akan senang tentang solusi untuk menonaktifkan bidang judul juga, tapi itu 2 (tidak mendaftar dengan karya jenis posting).

(Versi Wordpress adalah 3.0.4.)

kaisar
sumber

Jawaban:

16

Memberikan array kosong untuk 'mendukung' dalam deklarasi jenis posting harus menyingkirkan editor dan judul, bersama dengan setiap kotak default lainnya di halaman edit posting.

$supports = array ('');
    $args = array(
      'label' => 'people',
      'supports' => $supports,
      'hierarchical' => false,
      'public' => true,
      'rewrite' => true
         );

    register_post_type( 'people', $args);

Hasil: teks alternatif Mengisi 'dukungan' dengan elemen mana pun yang ingin Anda tampilkan, seperti trackback, komentar, dll. Atau biarkan kosong untuk membiarkan halaman kosong, kecuali kotak yang memungkinkan Anda menyimpan posting Anda. Pastikan untuk mengunjungi di sini jika Anda ingin menyingkirkan metabox taksonomi hierarkis juga.

Manny Fleurmond
sumber
Terima kasih sejauh ini Masalah saya adalah bahwa saya tidak dapat mengatur semuanya menjadi kosong. Saya menulis tiga kelas untuk mempercepat pembuatan jenis pos kustom, taksonomi & tag kustom. Mereka mendapat default. Dalam hal jenis posting khusus, itu semua. Tetapi saya perlu membatalkan registrasi beberapa kotak untuk jenis posting tertentu. Dan untuk satu saya perlu deregister kotak editor juga.
kaiser
Saya tertarik pada apa yang Anda maksud dengan mengatur semuanya menjadi kosong? Jika Anda ingin menyingkirkan editor, cukup jangan masukkan; editor 'ke dalam array' dukungan 'ketika Anda membuat jenis posting di kelas Anda.
Manny Fleurmond
2
@kaiser jika ini kelas Anda sendiri, apa masalahnya? Buat mereka menanganinya?
Pertama
@Rarst: Ini hanya pangkalan yang membuat hal-hal berikut: daftarkan jenis posting dan taksonomi dari array dan menawarkan filter untuk $ label dan $ args (default dan spesifik). Kelas istilah hanya menghasilkan istilah yang tidak dapat dihapus yang memperbarui dan menetapkan dari suatu array. Kotak meta bisa mudah tanpa kelas dan tidak masuk akal bagi saya untuk berintegrasi. Kelas-kelas hanya ada di sana untuk menghemat waktu saya dan menahan klien dari menghapus persyaratan yang dibutuhkan sistem. Tapi terima kasih sudah melihat. Bantuan Anda sangat dihargai (lagi) :)
kaiser
2
@kaiser lalu apa masalah dengan pengaturan supportsuntuk mengosongkan array melalui filter?
Pertama
15

Jika Anda melewatkan apa pun untuk supportsargumen, pengaturan default 'title', 'editor'digunakan (di mana "tidak ada" adalah apa pun yang ada empty()).

Namun, sama seperti Anda dapat menambahkan dukungan untuk sesuatu setelah mendaftarkan jenis posting add_post_type_support( $post_type, $feature ), Anda dapat menghapus dukungan untuk sesuatu dengan menelepon remove_post_type_support( $post_type, $feature ). Jadi menelepon ini setelah mendaftarkan jenis posting Anda harus menghapus editor:

remove_post_type_support( 'my_post_type', 'editor' );

Fungsi-fungsi ini hanya memanipulasi $_wp_post_type_featuresvariabel global , tetapi itu selalu lebih baik untuk melakukan ini dengan fungsi API daripada bermain-main sendiri.

Jan Fabry
sumber
SOLUSI! Saya selalu berpikir ini hanya untuk menghapus mantan. thumbnail atau nav_menu melalui tema anak. Terima kasih banyak!
kaiser
1
Aduh, saya merindukan itu. Poin baiknya, melewati array kosong akan mengevaluasi menjadi kosong ... Melewati nilai kosong selalu berantakan, itu kontra-intuitif sehingga diperlakukan seperti default, bukan apa - apa . :(
Rarst
1
@ Pertama: Saya pikir itu juga akan berfungsi jika Anda memberikan nama fitur dummy. Ini hanya kunci array, jadi tidak masalah jika data tiruan dimasukkan. Saya pernah menggunakan 0.1bukannya 0parameter untuk lulus empty()pemeriksaan.
Jan Fabry
1
@ Jan Fabry ya, itu bukan pertama kalinya saya menginjak empty()milik saya. Seperti di atas - sangat kontra-intuitif.
Paling lambat
Hm Ini tidak berfungsi dengan kunci dan oleh karena itu saya pikir "nilai-nilai dummy" dapat menjadi "milikku" yang lain ketika meningkatkannya nanti (coba temukan nilai yang buruk). Pokoknya: terima kasih banyak untuk kalian berdua! :) Edit: akan berguna jika nilainya tidak hanya ada di sana, tetapi merupakan pasangan kunci / nilai. Ex. 'support' => array('thumbnail' => true, 'editor' => false);
kaiser
2

Saya menggunakan plugin Custom Post Type UI untuk membuat jenis posting kustom. Dengan menggunakan plugin ini, Anda dapat menonaktifkan post-editor di bawah opsi lanjutan.

Kelola Jenis Posting -> Lihat Opsi Tingkat Lanjut

Berikut ini tautan ke plugin: http://wordpress.org/extend/plugins/custom-post-type-ui/

PS - Ini memungkinkan Anda menonaktifkan bidang judul juga :)

Carson
sumber
Seperti yang dikatakan di atas, saya menulis tiga kelas dan karena itu tidak dapat beralih ke plugin. Maksudku, aku bahkan tidak akan mempertimbangkan menggunakan plugin. Plugin adalah (imo) untuk pengembangan atau hal-hal yang mudah dipertukarkan seperti formulir komentar dan bukan hal-hal inti seperti jenis posting atau taksonomi. Bagaimanapun, terima kasih!
kaiser
1
Sebenarnya plugin dapat menyesuaikan hampir semua hal tentang Wordpress, termasuk jenis posting khusus. Saya sedang membuat sebuah plugin saat ini yang menciptakan banyak jenis posting, metabox mereka dan berbagai bidang khusus mereka.
Manny Fleurmond
@Manny Fleurmond: Jika Anda ingin berbagi, tolong berikan saya tautan. Saya masih memikirkan mungkin-mungkin menulis rutin untuk meta-box lanjutan di kelas saya juga.
kaiser
0

Lihat register_post_type (); dalam kodeks. Di bawah bagian Argumen, gulir ke bawah sampai Anda melihat Dukungan .

Pada 3.5, boolean falsedapat diteruskan sebagai nilai alih-alih array untuk mencegah perilaku default (judul dan editor).

Atau sesuaikan jenis kiriman khusus sesuai keinginan dengan menambahkan nilai yang Anda inginkan misalnya:

'supports' => array(
    'title',
    'author',
    'thumbnail',
    'post-formats'
),

Opsi yang didukung dalam array saya ini akan muncul di backend wordpress saya.

Gothburz
sumber
-2

Anda juga dapat mengatur gaya untuk halaman edit admin untuk menyembunyikan elemen tertentu, seperti editor dll.

function custom_colors() {
   echo '<style type="text/css">
            body.post-type-events #postdivrich {
            display: none;
            }
         </style>';
}

add_action('admin_head', 'custom_colors');
romapad
sumber
Terima kasih atas jawaban Anda, tetapi ini akan (a) membuatnya tidak dapat dilepas karena tidak terdaftar dengan API Ketergantungan dan (b) membuatnya dapat diakses oleh orang-orang yang tahu cara menggunakan alat pengembang browser.
kaiser