代码之家  ›  专栏  ›  技术社区  ›  Trevor J

Wordpress媒体上载程序注册并正确排队javascript

  •  0
  • Trevor J  · 技术社区  · 8 年前

    我有以下功能来打开Wordpress插件主php文件中的Wordpress媒体上传程序。问题是如何启动javascript:

    function media_uploader_enqueue() {
        wp_enqueue_media();
        wp_register_script( 'media-uploader', plugins_url( 'media-lib-uploader.js' , __FILE__ ), array( 'jquery', NULL, false ) );
        wp_enqueue_script( 'media-uploader');
    }
    add_action( 'admin_enqueue_scripts', 'media_uploader_enqueue');
    

    以及媒体库上载程序中的以下内容。js公司

    jQuery(document).ready(function($){
    var mediaUploader;
    
    $('#upload_image_button').click(function(e) {
    e.preventDefault();
      if (mediaUploader) {
      mediaUploader.open();
      return;
    }
    mediaUploader = wp.media.frames.file_frame = wp.media({
      title: 'Choose Image',
      button: {
      text: 'Choose Image'
    }, multiple: false });
    mediaUploader.on('select', function() {
      var attachment = mediaUploader.state().get('selection').first().toJSON();
      $('#background_image').val(attachment.url);
    });
    mediaUploader.open();
    });
    });
    

    这是设置页面的html:

    <input type="text" id="background_image" name="background_image" value="<?php echo get_option('background_image'); ?>" /><input id="upload_image_button" class="button" type="button" value="Upload Image" />
    

    我在代码中找不到错误。我甚至试过;

    wp_deregister_script
    

    我是否已正确注册javascript并将其排入队列?或者javascript本身有问题吗?

    1 回复  |  直到 8 年前
        1
  •  0
  •   Trevor J    8 年前

    修复了我在主插件php文件中提前定义此函数的问题。易于理解的