Ada banyak situasi di mana tema atau plugin mendaftarkan jenis posting dan Anda ingin memodifikasinya. Tentu saja ada add_post_type_support()
dan remove_post_type_support()
, tetapi mereka tidak memberikan akses ke daftar lengkap argumen yang register_post_type()
diambil. Khususnya, mungkin saya ingin menonaktifkan arsip jenis posting, menyembunyikan UI admin, menyembunyikan dari pencarian, dll. Sambil membiarkan pengaturan jenis posting lainnya.
The Codex halaman untukregister_post_type()
Dangles ini di depan saya:
Deskripsi
Buat atau modifikasi jenis posting.
Tetapi di masa lalu, ketika saya mencoba melakukan ini, sepertinya tidak berhasil. Apakah fungsi ini benar-benar untuk memodifikasi tipe posting, dan jika demikian, dapatkah Anda mendeklarasikan ulang argumen pasangan dan membiarkan sisanya sendirian?
Melihat bahwa bahkan tidak ada deregister_post_type()
fungsi , saya tidak mengerti bagaimana itu bisa dilakukan.
sumber
register_post_type
benar? Saya berasumsi demikian oleh "Ya." Anda, dan itu tidak membuang kesalahan dan memiliki efek yang diinginkan. Kasus sebenarnya adalah opsi kedua yang saya sajikan dalam jawaban ini: wordpress.stackexchange.com/a/74331/12615register_post_type
. Pada kenyataannya, tidak perlu. Itu adalah pertanyaan "untuk catatan", terima kasih atas umpan baliknya.Setelah beberapa penelitian saya menemukan tidak ada jawaban yang up to date.
Pada 8 Desember 2015 WordPress menyertakan filter baru
register_post_type_args
,, yang memungkinkan Anda menghubungkan argumen dengan tipe posting terdaftar.sumber
init
register_post_type
fungsi. Satu-satunya skenario di mana kode saya tidak akan berfungsi adalah jika jenis posting tidak terdaftar dengan benar. Semua jenis posting harus didaftarkan selama init hook. Dari kodeks: "register_post_type tidak akan berfungsi jika dipanggil sebelum 'init', dan aspek dari tipe tulisan yang baru dibuat atau dimodifikasi akan bekerja secara salah jika dipanggil nanti." Jika Anda masih membutuhkan bantuan saya sarankan memposting lebih detail dalam pertanyaan baru.Berikut adalah contoh cara menggunakan
'registered_post_type'
filter untuk mengubah jenis posting di plugin lain.Plugin yang saya gunakan tidak menyertakan menu_icon dalam definisi itu, jadi saya ingin menambahkan salah satu dari saya sendiri.
sumber
Hubungkan ke
'registered_post_type'
setelah kode lain telah mendaftarkannya. Ini disebut pada akhirregister_post_type()
. Anda mendapatkan dua argumen:$post_type
dan$args
.Sekarang Anda dapat mengubah apa pun untuk jenis posting ini. Periksa
$GLOBALS['wp_post_types']
beberapa opsi.sumber
register_post_type()
yang mencakup "modifikasi?" Apakah itu salah? Haruskah saya naik kuda internet saya dan mengalahkannya dari Codex saat ini?$wp_post_types[$post_type] = $args;
... menyarankan agar Anda dapat mengubah properti. Tambahkan contoh kode gagal ke pertanyaan Anda.Saya menghadapi hal yang sama dengan plugin The Events Calendar .
Saya menambahkan kode di bawah ini ke function.php untuk mengubah jenis posting tribe_organizer
sumber
Saya tidak tahu apakah ini jelek, tetapi Anda bisa mengubah
GLOBAL
placeholder "on the fly" setiap kali Anda perlu memanipulasi satu argumen. Ini adalah bagaimana kami menggunakan jenis posting non-publikcontents
agar dapat diterima di menu admin. Kami mengaitkan sebelum dan tutup setelah menu merender:Dalam kasus kami, kami ingin plugin Admin Post Post List menerima jenis posting kami, karena mereka memanggil
return get_post_types(array('public' => true));
di dalam hook mereka dengan prioritas 11 ...Pengembang -Silakan beri komentar jika ini dapat menyebabkan masalah apa pun.
sumber