J'ai créé un type de publication personnalisé "portfolio" avec quelque chose comme ceci:
$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 );
Et j'ai d'autres champs personnalisés avec une action:
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");
}
Bien que j'aie déjà eu ce fonctionnement, je n'arrive pas à le trouver pour charger des scripts uniquement pour cette page. En ce moment, je les ai juste avec le reste du wp_enqueue_script
genre:
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');
Mais rien de tout cela ne se charge pour moi. Comment puis-je charger ces scripts dans les pages d'administration? Mieux encore, comment puis-je les charger spécifiquement pour les pages d'édition du type de publication personnalisé du portefeuille?
Réponses:
Essayez ce code pour ajouter des scripts aux pages d'édition de votre type de publication personnalisé de portefeuille.
la source
Je publierai une meilleure solution car la réponse acceptée est ancienne et n'utilise pas les bons crochets .
Tout d'abord: pour mettre en file d'attente les scripts et les styles dans la zone d'administration, doit être utilisé
admin_enqueue_scripts
et rien d'autre.Deuxièmement: Oubliez toutes les variables globales. Utilisez l'objet d'écran actuel pour effectuer différentes vérifications.
Voici un code de copier-coller prêt:
Remarque: Remplacez
'portfolio'
par le slug de type de poste requis.la source
J'ai fait quelques changements dans ce code pour travailler pour moi:
J'ai changé
get_stylesheet_directory_uri() . '/admin.js'
pourplugins_url( '/js/admin.js', __FILE__),
- c'était nécessaire parce que j'ai développé un plugin pour une bannière, qui est la meilleure solution à la place en créant CPT à l'intérieurfunctions.php
J'ai ajouté "
true
" pour envoyer le code dans la zone de pied de page au lieu de la tête - améliore le temps de chargementla source