カスタム投稿タイプのカスタムメタボックスにカスタムメディアアップローダーを作成しようとしています。それはたくさんの習慣です。 Add Imageボタンをクリックするとwp.mediaクラスを実行するjavascriptファイルがエンキューされました。ボタンをテストしたときに、次のエラーが表示されました。しかし、そうしようとしても問題は解決しません。助けてください?
メタボックス作成/エンキュースクリプト:
function cns_add_custom_metabox(){
add_meta_box( 'fet-media-fields', 'Listing Media', 'cns_display_media' );
}
add_action( 'add_meta_boxes', 'cns_add_custom_metabox' );
function cns_display_media( $post ){
?>
<div id="metabox-wrapper">
<img id="image-tag">
<input type="hidden" id="img-hidden-field" name="custom_image_data">
<input type="button" id="image-upload-button" class="button" value="Add Image">
<input type="button" id="image-delete-button" class="button" value="Remove Image">
</div>
<?php
}
function register_admin_script() {
wp_enqueue_script( 'cns-image-upload.js', get_stylesheet_directory_uri() . '/js/cns-image-upload.js', array('jquery') );
}
add_action( 'admin_enqueue_scripts', 'register_admin_script' );
Javascriptファイル - cns-image-upload.js:
var addButton = document.getElementById( 'image-upload-button' );
var deleteButton = document.getElementById( 'image-delete-button' );
var img = document.getElementById( 'image-tag' );
var hidden = document.getElementById( 'img-hidden-field' );
var customUploader = wp.media({
title: 'Select and Image',
button:{
text: 'User this Image'
},
multiple: false
});
addButton.addEventListener( 'click', function(){
if( customUploader ){
customUploader.open();
}
} );
理解した!私はJavaScriptコードを次のようにラップしていませんでした。
jQuery(document).ready( function($){ });