web-dev-qa-db-de.com

Hinzufügen von Skripten zur Admin-Seite in meinem Thema

In functions.php meines Themas habe ich Code zum Hinzufügen einer Seite im Admin-Bereich und zum Anhängen von Skripten. Es werden jedoch keine Skripte geladen. Bellow ist Code. Auskommentierte add_action-Zeilen habe ich überprüft.

    // 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');
1
GeekDaddy

Verwenden Sie add_action('admin_enqueue_scripts', 'pb_admin_style'); und wie im Handbuch angegeben, kann der admin_enqueue_scripts auch verwendet werden, um eine bestimmte Admin-Seite anzusprechen. Verwenden Sie diese Option, um nur die gewünschte Administrationsseite auszuwählen.

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' );
1
Miha Rekar

Dies ist meine Methode zum Laden von Skripten, da ich Skripten in einem bestimmten Beitragstyp lade. Dieses Beispiel gilt für 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');
}
0
Adrian