J'essaie de mettre en file d'attente/d'imprimer des scripts dans la zone d'administration. Mais ils ne semblent pas apparaître.
add_action('admin_init', function() {
add_meta_box('portfolio-meta', 'Details', 'portfolio_metabox_details', 'portfolio');
wp_register_script('jqeury-validate', 'http://ajax.aspnetcdn.com/ajax/jquery.validate/1.8.1/jquery.validate.min.js');
wp_enqueue_script('jquery-validate');
wp_register_script('ae-admin', get_bloginfo('template_directory') . '/js/admin.js', array('jquery', 'jquery-validate'));
wp_enqueue_script('ae-admin');
wp_localize_script('ae-admin', 'WpAjax', array(
'AjaxUrl' => admin_url('admin-ajax.php')
));
wp_register_style('ae-validate', get_bloginfo('template_directory') . '/css/validate.css');
wp_enqueue_style('ae-validate');
});
Mais mon script (admin.js
) ne semble pas être imprimé. J'ai même essayé de mettre ceux-ci dans 'init' au lieu de 'admin_init' mais je ne vois pas mes scripts ... pourquoi est-ce? Comment puis-je déboguer?
Utilisez le hook admin_enqueue_scripts
au lieu de admin_init
Remarque: vous devez utiliser des points d'ancrage qui ciblent les pages d'administration aussi précisément que possible. par exemple.:
admin_print_scripts-{plugin-page}
admin_print_scripts-{theme-page}
(où {theme-page}
est la chaîne que vous utilisez dans l'appel add_theme_page()
)admin_print_scripts-edit.php
,Pour les types de publication personnalisés, dans votre fonction, effectuez les opérations suivantes:
global $typenow;
if( 'portfolio' == $typenow ) {
// wp_enqueue_script() calls go here
}
(h/t t31os )
Je viens de remarquer que votre appel add_action()
est incorrect. Vous devez lui transmettre un rappel et non la définition de la fonction .
Tu as:
add_action('admin_init', function() {
// function definition here
});
Au lieu de cela, vous devriez avoir:
function mytheme_enqueue_admin_scripts() {
// register/enqueue code goes here
}
add_action( 'hook_name', 'mytheme_enqueue_admin_scripts' );
Assurez-vous que votre header.php (ou une autre fonction de l’en-tête) exécute le hook d’action wp_head. Le code devrait ressembler à ceci:
<?php wp_head() ?>
En fait je viens d'avoir une faute de frappe
wp_register_script('jqeury-validate', 'http://ajax.aspnetcdn.com/ajax/jquery.validate
^
Mais merci @Chris_O, & @Chip Bennett pour leurs bonnes réponses