私のテーマのfunctions.phpでは、管理領域にページを追加し、それにスクリプトを追加するコードがあります。しかしスクリプトはロードされません。ベローズはコードです。コメントアウトされたadd_action行は私がチェックしたものです。
// functions.php
// Append user style and scripts to Add New Wallpaper menu
function pb_admin_scripts() {
wp_enqueue_script('media-upload');
wp_enqueue_script('thickbox');
wp_register_script('pb-upload', get_template_directory_uri() . '/pb-upload.js');
wp_enqueue_script('pb-upload');
}
function pb_admin_style() {
wp_enqueue_style('thickbox');
}
function pb_wallpaper_adminmenu() {
$page = add_menu_page('Dodaj Tapetę', 'Dodaj Tapetę', 'edit_posts', 'add-wallpaper', 'pb_add_wallpaper', '', 6);
}
// add_action( 'admin_head-add-wallpaper', 'pb_admin_scripts');
// add_action( 'admin_print_scripts-add-wallpaper', 'pb_admin_scripts');
// add_action( 'admin_print_styles-add-wallpaper', 'pb_admin_style');
// add_action( 'load-add-wallpaper', 'pb_admin_scripts');
// add_action( 'load-add-wallpaper', 'pb_admin_style');
// add new wallpaper
function pb_add_wallpaper() {
?>
<div class="wallpaper-add">
<h3>Dodaj Nową Tapetę</h3>
<form method="post" action="">
<input type="hidden" name="action" value="pb_add_wallpaper" />
<input id="upload_image_button" type="button" value="Upload Image" />
<input type="hidden" name="upload_image" id="upload_image" />
<?php wp_nonce_field('pb_add_wallpaper', '_nonce'); ?>
</form>
</div>
<?php
}
add_action('admin_menu', 'pb_wallpaper_adminmenu');
add_action('admin_enqueue_scripts', 'pb_admin_style');
を使用し、 マニュアル にあるように、admin_enqueue_scripts
を使用して特定の管理ページをターゲットにすることもできます。これを使用して、必要な管理ページのみを選択してください。
function pb_admin_style($hook) {
if( 'edit.php' != $hook )
return;
wp_enqueue_script( 'my_custom_script', plugins_url('/myscript.js', __FILE__) );
}
add_action( 'admin_enqueue_scripts', 'pb_admin_style' );
これは私のロードスクリプトメソッドです。これは私が特定の投稿タイプでスクリプトをロードするためです。この例はpost_type = 'resources'用です。
if(!function_exists('load_pdf_uploader_scripts'))
{
function load_pdf_uploader_scripts($hook)
{
//Check if is in edit post
if(isset($_GET['post']) && isset($_GET['action']))
{
//Get post type
$post_type = get_post_type( $_GET['post'] );
//Check if we are in resources post type to load specific scripts
if($post_type == 'resources' && $_GET['action']=='edit')
{
//Load the script
wp_enqueue_script('pdfupload', get_stylesheet_directory_uri().'/assets/js/pdfupload.js', array('jquery')); // in footer
}
}
//Check if is new post item
elseif(isset($_GET['post_type']))
{
//Check if we are in resources post type to load specific scripts
if($_GET['post_type'] == 'resources')
{
//Load the script
wp_enqueue_script('pdfupload', get_stylesheet_directory_uri().'/assets/js/pdfupload.js', array('jquery')); // in footer
}
}
}
//We load this script only in admin area
add_action('admin_enqueue_scripts', 'load_pdf_uploader_scripts');
}