2017-02-20 7 views
0

私はカスタムメディアをアップローダーにして、メタフィールドに完全に対応しています。私のメディアアップローダーにはギャラリーオプションはありません。しかし、今私はそれにギャラリーのオプションを与えたい。私は多くを検索し、その手順に従いますが、成功しません。ここでカスタムメディアアップローダでアクティブなメディアギャラリーを作成する方法WordPress

はギャラリーオプションを使用せずに完璧に働いていることを私のコードです:

var meta_image_frame_gallery; 

    // Runs when the image button is clicked. 
    jQuery('#additional_image_1').click(function(e){ 

     // Prevents the default action from occuring. 
     e.preventDefault(); 

     // If the frame already exists, re-open it. 
     if (meta_image_frame_gallery) { 
      meta_image_frame_gallery.open(); 
      return; 
     } 

     // Sets up the media library frame 
     meta_image_frame_gallery = wp.media.frames.meta_image_frame_gallery = wp.media({ 
      title: 'Upload Image', 
      button: { text: 'Upload Image' }, 
      library: { type: 'image' }, 
     }); 

     Runs when an image is selected. 
     meta_image_frame_gallery.on('select', function(){ 

      // Grabs the attachment selection and creates a JSON representation of the model. 
      var media_attachment = meta_image_frame_gallery.state().get('selection').first().toJSON(); 

      // Sends the attachment URL to our custom image input field. 
      jQuery('#itv_additional_image_1').val(media_attachment.url); 
     }); 


     // Opens the media library frame. 
     meta_image_frame_gallery.open(); 
    }); 

そして、ここではギャラリーオプションの私のコードです:

var meta_image_frame_gallery; 

    // Runs when the image button is clicked. 
    jQuery('#additional_image_1').click(function(e){ 

     // Prevents the default action from occuring. 
     e.preventDefault(); 

     // If the frame already exists, re-open it. 
     if (meta_image_frame_gallery) { 
      meta_image_frame_gallery.open(); 
      return; 
     } 

     // Sets up the media library frame 
     meta_image_frame_gallery = wp.media.frames.meta_image_frame_gallery = wp.media({ 
      title: 'Upload Image', 
      button: { text: 'Upload Image' }, 
      multiple: true, 
      library: { type: 'image' }, 
     }); 

     // Runs when an image is selected. 
     //meta_image_frame_gallery.on('select', function(){ 
     // 
     // // Grabs the attachment selection and creates a JSON representation of the model. 
     // var media_attachment = meta_image_frame_gallery.state().get('selection').first().toJSON(); 
     // 
     // // Sends the attachment URL to our custom image input field. 
     // jQuery('#itv_additional_image_1').val(media_attachment.url); 
     //}); 

     // When an image is selected, run a callback. 
     meta_image_frame_gallery.on('select', function() { 

      var selection = meta_image_frame_gallery.state().get('selection'); 

      selection.map(function(attachment) { 

       attachment = attachment.toJSON(); 

       // Do something with attachment.id and/or attachment.url here 
       jQuery('#itv_additional_image_1').val(selection.url); 
      }); 
     }); 

     // Opens the media library frame. 
     meta_image_frame_gallery.open(); 
    }); 

まず、私が作成したとき、私は第二のギャラリーのためのオプションをしたいとギャラリー、その短いコードはメタフィールドに表示され、次に私はそれをdbに保存します。

私が助けてくれる案内をお願いします。

答えて

1

私はより多くの検索によってそれを把握し、いくつかのリンクがそれらをチェックすることを発見しました。 Galleryオプションは、メディアアップローダーでアクティブになりました。ここで

は私のコードは以下のようになります。 わずか3つの以上のparamsに

frame: "post", state: 'gallery-library', multiple: true

この行の

meta_image_frame_gallery = wp.media.frames.wp_media_frame = wp.media({

を追加する完全なコード:

meta_image_frame_gallery = wp.media.frames.wp_media_frame = wp.media({ 
      title: 'My Gallery', 
      frame: "post", 
      state: 'gallery-library', 
      library: { 
       type: 'image' 
      }, 
      multiple: true 
     }); 

そして今、その作業を完璧に

関連する問題