如何动态获取WordPress媒体库

时间:2017-06-26 06:02:36

标签: javascript php jquery wordpress

我想从媒体库中选择图片,在我的管理页面中,我有项目列表及其图像,我想使用媒体库更改项目图像,这是我的代码

add_action('admin_enqueue_scripts', array(&$this,'enqueue_media_lib'));
public function enqueue_media_lib(){
    wp_enqueue_media();
    wp_register_script( 'media-lib-uploader-js', plugins_url( 'js/media-library.js',dirname( __FILE__)), array('jquery'),'1.1.1',true);
    wp_enqueue_script( 'media-lib-uploader-js' );
}

 <?php
      $result = $wpdb->get_results('SELECT id,category, type,image_path, name, description FROM '.$ps_detail_table_name, ARRAY_A);
      foreach ($result as $value){ ?>
      <tr id="view-row<?php echo $value['id']; ?>">
      <td id="view-category<?php echo $value['id']; ?>"><?php echo $value['category']; ?></td>
      <td id="view-type<?php echo $value['id']; ?>"><?php echo $value['type']; ?></td>
      <td id="view-name<?php echo $value['id']; ?>"><?php echo $value['name']; ?></td>
      <td id="view-description<?php echo $value['id']; ?>"><?php echo $value['description']; ?></td>
      <td id="view-img-path<?php echo $value['id']; ?>">
          <img id="product-img<?php echo $value['id']; ?>" src="<?php echo $value['image_path']; ?>" height="50px" width="50px"/>
          <input id="new_upload_image_button<?php echo $value['id']; ?>" type="button" class="btn btn-primary btn-sm" value="Change"/>
          <input type="hidden" name="new-image-attachment-id" id="new-image-attachment-id<?php echo $value['id']; ?>" value=""/>
      </td>

Jquery的

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

var mediaUploader;

$('#new_upload_image_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();
        $('#new_upload_image_button').attr('src',attachment.url);
        $('#new-image-attachment-id').val(attachment.url);
    });
    // Open the uploader dialog
    mediaUploader.open();
});

});

这是我的代码我不想在jQuery中硬核ID名称请给我解决方案

1 个答案:

答案 0 :(得分:1)

尝试使用

$("div[id^='new_upload_image_button']").click(function () {
      //mediaUploader code..
});