Saya menggunakan register_taxonomy_for_object_type()
untuk menambahkan bidang taksonomi Kategori ke unggahan Media (lampiran). Saya menggunakan kode ini untuk melakukannya:
add_action('init', 'reg_tax');
function reg_tax() {
register_taxonomy_for_object_type('category', 'attachment');
}
Ini berfungsi dan menambahkan bidang teks sederhana untuk Kategori ke halaman Media saat melihat gambar. Yang benar-benar saya inginkan adalah membuatnya menampilkan Kategori Metabox yang sebenarnya sehingga saya bisa memilih Kategori yang ingin saya gunakan daripada hanya mengetiknya ke dalam bidang polos. Saya juga menemukan bahwa menempatkan siput untuk kategori ke dalam bidang teks ini seperti my-category-name
akhirnya ditampilkan sebagai nama kategori yang sebenarnya seperti My Category Name
ketika disimpan, yang membuat bidang teks sederhana semakin sedikit pilihan yang berguna.
Saya telah melihat add_post_type_support()
fungsi untuk menambahkan Metabox dan telah melihatnya digunakan untuk Jenis Posting Kustom, saya tidak bisa melihat apakah mungkin untuk menambahkan yang sama untuk lampiran.
sumber
Jawaban:
Sunting: 12/09/2017 Lihat jawaban ini untuk solusi yang lebih terkini untuk ini: Bagaimana cara menggunakan taksonomi pada lampiran dengan Perpustakaan Media baru?
Saya akan menjawab pertanyaan saya sendiri di sini karena saya telah berhasil menemukan solusi untuk apa yang saya coba lakukan. Saya sampai pada kesimpulan bahwa Kategori Metabox tidak mungkin diaktifkan untuk lampiran. Namun, saya menemukan bahwa cukup mudah untuk mendapatkan bidang dasar untuk Kategori yang ditambahkan ke halaman lampiran dengan menggunakan
register_taxonomy_for_object_type
danadd_post_type_support
:Bidang yang ditambahkan menunjukkan seperti ini:
Ini hanya bidang teks biasa tetapi yang saya temukan adalah Anda bisa mengetik nama kategori yang ada di sana dan kemudian akan berhasil disimpan ketika lampiran diperbarui (Satu-satunya perilaku aneh adalah bahwa ia merender kembali versi normal bukan siput setelah disimpan).
Setelah saya menyadari bahwa saya bisa menyimpan kategori dengan cara ini maka saya pikir saya bisa mendapatkan daftar semua kategori yang tersedia sebagai kotak centang dan memeriksa yang sudah dipilih. Saya kemudian menggunakan sedikit jQuery untuk mengambil nilai dari kategori yang diperiksa dan memasukkan siput semua kategori ke dalam bidang Kategori. Untuk membuatnya tampak lebih mulus, saya kemudian menggunakan sedikit CSS sederhana untuk menyembunyikan baris tabel yang berisi bidang Kategori, jadi yang Anda lihat hanyalah kotak centang, seperti:
Sekarang saya bisa menambahkan kategori ke lampiran gambar saya bisa menggunakan sesuatu seperti:
Dan tarik gambar yang dikategorikan ke dalam halaman! Tepat seperti yang kuharapkan, aku tidak berpikir akan ada cara untuk melakukannya, tetapi senang aku berhasil menemukan sesuatu.
Saya telah mengubah ini menjadi sebuah plugin bernama
WOS Media Categories
yang telah saya sediakan untuk diunduh dari situs web saya, Suburbia.org.uk , saya harap ini dapat bermanfaat bagi orang lain! Terima kasih sekali lagi kepada mereka yang mengomentari ini dan pertanyaan lain yang saya ajukan di sini yang membantu memecahkannya!Pembaruan: Saya telah menambahkan perbaikan untuk memungkinkan kategori ditambahkan sementara gambar diunggah menggunakan pengunggah massal Flash.
sumber
baru saja membuat ini, yang merupakan solusi lengkap untuk tautan javascript herky-jerk ke bidang formulir. Karena nilai kotak centang Anda diteruskan bersama dengan $ _POST saat kirim, Anda bisa mengambilnya selama filter add_image_attachment_fields_to_save dan mengatur ketentuan objek posting.
(perhatikan bahwa saya menggunakan taksonomi ubahsuaian, dan bukan kategori, jadi Anda harus mengubah array $ kategori agar sesuai dengan array yang sama seperti yang Anda gunakan saat mengatur kotak centang)
Shabam, shabozzle. Nikmati.
sumber
wp_set_object_terms( $post['ID'], $terms, 'image-format' ); return $post;
. Dan skrip yang Anda posting tidak menjalankan register_custom_taxonomies. Tapi bagaimanapun juga skrip yang bagus. Pasti akan menggunakan ini di masa depan!Ini sulit / rumit jika Anda ingin menggunakan kotak kategori default WordPress. Untuk satu hal, metabox tidak mengembalikan output, itu hanya menggemakannya. Selain itu, itu tidak akan memberi Anda nama bidang input yang benar, sehingga tidak akan menyimpan. Satu ide mungkin menggunakan jQuery UI Autocomplete untuk mereplikasi fungsi kotak tag.
Namun, jika Anda ingin bermain-main dengan bidang editor media, Anda dapat mengaitkannya
'attachment_fields_to_edit'
dan mengedit array bidang. Filter melewati dua argumen ke callback: argumen pertama adalah array bidang, kedua adalah objek posting lampiran. Lihat di sini untuk detail lebih lanjut:http://phpxref.ftwr.co.uk/wordpress/nav.html?wp-admin/includes/media.php.source.html#l1025
sumber
attachment_fields_to_edit
dan melihat bagaimana hasilnya.Saya telah membuat plugin menggunakan Kategori Media WOS @ RickCurran sebagai titik awal. Namun, Kategori Media WOS, seperti plugin lain yang menambahkan dukungan kategori ke media, tidak benar-benar menambahkan metabox, saya telah melakukan hal itu.
Ini tentu disederhanakan dari metabox pada posting dan halaman, tetapi saya memang menyertakan kemampuan penyaringan yang membuatnya mudah digunakan.
Saya sebenarnya menghasilkan seluruh kotak metabox yang Anda lihat di halaman dan posting, tetapi menyembunyikan bit yang tidak berfungsi pada halaman media karena kurangnya gaya dan javascript yang hilang.
Saya menyambut setiap pemikiran yang mungkin dimiliki seseorang tentang bagaimana membuat metabox berfungsi penuh - sesuatu yang ingin saya lakukan di versi yang lebih baru.
sumber
Plugin hebat Rick - sangat membantu.
Jika Anda memindahkan sebaris pemicu onclick alih-alih mengikatnya ke onload (dan membuat beberapa tweak kecil lainnya), itu juga akan berfungsi pada pengunggah massal Flash. Dengan versi saat ini, Flash dimuat setelah acara pemuatan jQuery sehingga objek belum ada.
js direvisi:
tambahkan onclick ke input dalam file php:
tambahkan id formulir pengunggah massal ke file css:
}
sumber