Saat mengatur kotak meta dalam jenis posting khusus saya telah melakukannya menggunakan add_meta_boxes
hook, misalnya
add_action('add_meta_boxes', 'meta_box_setup');
function meta_box_setup()
{
add_meta_box(
'mb_movie_review',
'Movie Review Details',
'display_movie_review_mb',
'movie-reviews',
'side',
'high'
);
}
Tapi saya baru saja membaca tutorial ini yang melakukan hal berikut menggunakan admin_init
hook, seperti ...
add_action('admin_init', 'meta_box_setup');
function meta_box_setup()
{
add_meta_box(
'mb_movie_review',
'Movie Review Details',
'display_movie_review_mb',
'movie-reviews',
'side',
'high'
);
}
Ini adalah pertama kalinya saya melihatnya menggunakan admin_init
hook.
Pertanyaan
Metode yang terakhir (menggunakan admin_init
) tidak bekerja tetapi ...
- apakah ini metode yang disukai ? (Yaitu lebih dioptimalkan?)
- hanya cara berbeda untuk mencapai hasil yang sama, atau
- a bad cara untuk menambahkan meta kotak? (jika demikian, mengapa?)
add_meta_boxes
lebih disukai.add_meta_boxes
. Kami bahkan memiliki"add_meta_boxes_$post_type"
kontrol yang lebih baik.Jawaban:
Lihatlah daftar ini: http://codex.wordpress.org/Plugin_API/Action_Reference
add_meta_boxes
lebih disukai. Suatu hari nanti di masa depan WordPress dapat mengubah sesuatu dan dengan menggunakan kait yang paling tepat Anda meningkatkan peluang Anda bahwa kode Anda akan tetap berfungsi di masa depan.add_theme_support()
yang umumnya digunakan denganafter_setup_theme
kait tindakan hanya untuk pengguna yang masuk log yang merupakan administrator tetapi kait ini tidak memungkinkan Anda untuk mengakses informasi ini. Karena itu, Anda mungkin harus menggunakan kait tindakanset_current_user
atauinit
sebagai gantinya (setelah melakukan riset jika aman untuk melakukannya).sumber
Ada beberapa kait lain:
dan segera setelah itu berjalan:
Jika Anda ingin melakukan pemeriksaan batalkan berbeda dari dalam hook / callback yang benar-benar mendaftarkan kotak meta, gunakan salah satu di atas karena
\WP_Screen
objek tidak diisi sediniadmin_init
berjalan.Jika Anda menggunakan
add_meta_boxes
pengait yang lebih umum , Anda dapat memeriksa argumen pertamanya:Jika Anda tidak ingin menambahkan kotak meta Anda selama posting belum disimpan setidaknya satu kali, Anda dapat memeriksa
dan seterusnya. Kesimpulan: Jika Anda ingin mempersempit, gunakan kait yang ditunjukkan di atas.
sumber