Saya telah membuat "portofolio" jenis pos kustom dengan sesuatu seperti ini:
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'query_var' => true,
//'menu_icon' => get_stylesheet_directory_uri() . '/article16.png',
'rewrite' => true,
'capability_type' => 'post',
'hierarchical' => false,
'menu_position' => 4,
'taxonomies' => array('post_tag','category'),
'supports' => array('title','editor','comments','trackbacks','revisions','custom-fields','page-attributes','thumbnail', 'excerpt', 'tags')
);
register_post_type( 'portfolio' , $args );
Dan saya memiliki beberapa bidang khusus di sana dengan tindakan:
add_action("admin_init", "admin_init");
function admin_init(){ // add_meta_box( $id, $title, $callback, $page, $context, $priority );
add_meta_box("media", "Media Type", "media", "portfolio", "side", "high");
add_meta_box("map_meta", "Mapping Info", "map_meta", "portfolio", "normal", "high");
}
Meskipun saya pernah memiliki ini berfungsi, saya tidak tahu untuk mendapatkannya memuat skrip hanya untuk halaman ini. Saat ini saya hanya memiliki mereka dengan sisa wp_enqueue_script
seperti ini:
function my_init() {
if (!is_admin()) {
....
}
if (is_admin()) {
wp_register_script('Gmaps', 'http://maps.google.com/maps/api/js?sensor=false', false, '3.0', false);
wp_enqueue_script('Gmaps');
wp_register_style('admin_js', get_bloginfo('template_directory') . '/admin.js');
wp_enqueue_script('admin_js');
wp_register_script('Zmaps', get_bloginfo('template_directory') .'/scripts/maps.js', array('Gmaps'), '1.0', true);
wp_enqueue_script('Zmaps');
}
}
add_action('wp_enqueue_scripts', 'my_init');
Tapi tidak ada yang memuat untuk saya. Bagaimana saya bisa memuat skrip ini ke halaman admin? Lebih baik lagi bagaimana saya bisa memuatnya secara khusus untuk halaman edit dari jenis pos kustom portofolio?
Jawaban:
Coba kode ini untuk menambahkan skrip ke halaman edit dari jenis pos kustom portofolio Anda.
sumber
Saya akan memposting solusi yang lebih baik karena jawaban yang diterima sudah tua dan tidak menggunakan kait yang benar .
Pertama-tama: Untuk membuat skrip dan gaya enqueue di area admin, harus digunakan
admin_enqueue_scripts
dan tidak ada yang lain.Kedua: Lupakan vars global. Gunakan objek layar saat ini untuk melakukan pemeriksaan yang berbeda.
Berikut ini adalah kode tempel salinan yang siap pakai:
Catatan: Ganti
'portfolio'
dengan siput tipe posting yang dibutuhkan.sumber
Saya membuat beberapa perubahan pada kode ini agar berfungsi untuk saya:
Saya mengubah
get_stylesheet_directory_uri() . '/admin.js'
keplugins_url( '/js/admin.js', __FILE__),
- ini diperlukan karena saya telah mengembangkan sebuah plugin untuk banner, yang merupakan solusi yang lebih baik bukan menciptakan CPT dalamfunctions.php
Saya telah menambahkan "
true
" untuk mengirim kode di area footer alih-alih kepala - meningkatkan waktu untuk memuatsumber