Wordpress - 使用媒体库获取图像

Rod*_*lix 7 php forms ajax wordpress image

我正在创建一个插件,我有一个管理页面

在该页面的选项中,我想添加一个按钮,允许我打开Wordpress媒体库并从中选择一个图像,之后,获取所选图像的URL和alt属性.

如果有可能,我怎么能用AJAX做到这一点?

小智 8

首先,您需要将wordpress核心媒体脚本和自定义js脚本排入队列

function my_enqueue_media_lib_uploader() {

    //Core media script
    wp_enqueue_media();

    // Your custom js file
    wp_register_script( 'media-lib-uploader-js', plugins_url( 'media-lib-uploader.js' , __FILE__ ), array('jquery') );
    wp_enqueue_script( 'media-lib-uploader-js' );
}
add_action('admin_enqueue_scripts', 'my_enqueue_media_lib_uploader');
Run Code Online (Sandbox Code Playgroud)

然后,假设您在选项页面中有此标记:上传按钮和用于存储所选图像URL的文本输入

<form method="post">
    <input id="image-url" type="text" name="image" />
    <input id="upload-button" type="button" class="button" value="Upload Image" />
    <input type="submit" value="Submit" />
</form>
Run Code Online (Sandbox Code Playgroud)

您需要添加此javascript代码以调用上传器弹出窗口

jQuery(document).ready(function($){

  var mediaUploader;

  $('#upload-button').click(function(e) {
    e.preventDefault();
    // If the uploader object has already been created, reopen the dialog
      if (mediaUploader) {
      mediaUploader.open();
      return;
    }
    // Extend the wp.media object
    mediaUploader = wp.media.frames.file_frame = wp.media({
      title: 'Choose Image',
      button: {
      text: 'Choose Image'
    }, multiple: false });

    // When a file is selected, grab the URL and set it as the text field's value
    mediaUploader.on('select', function() {
      attachment = mediaUploader.state().get('selection').first().toJSON();
      $('#image-url').val(attachment.url);
    });
    // Open the uploader dialog
    mediaUploader.open();
  });

});
Run Code Online (Sandbox Code Playgroud)

选择图像后,您的image-url输入现在将包含该网址,并将保存在表单提交中.