2
편집 : 다른 변형 스크립트도 작동하지 않는 것 같습니다. wp_enqueue_media()는 괜찮 았지만 wp.media가 포함 된 스크립트는 포함되지 않았습니다.wp.media는 Wordpress 미디어 업 로더를 사용하여 정의되지 않았습니다
나는 사용자 정의 플러그인에서 워드 프레스 미디어 업 로더를 사용하려고하지만, 다음과 같은 오류가 계속 해요 :
TypeError: undefined is not an object (evaluating 'wp.media.frames')
내 자바 스크립트 코드
:jQuery(document).ready(function(){
var mediaUploader;
jQuery('#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() {
var attachment = mediaUploader.state().get('selection').first().toJSON();
jQuery('#logo').val(attachment.url);
});
// Open the uploader dialog
mediaUploader.open();
});
});
의 .js 파일은을
/* Add the media uploader script */
function my_media_lib_uploader_enqueue() {
wp_enqueue_media();
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_media_lib_uploader_enqueue');
팁으로, "충돌 방지"문서를 준비하여 시간/노력을 절약 할 수 있습니다 :'jQuery (function ($) {// 여기에서 jQuery를 입력하는 대신 $를 사용할 수 있습니다. $ ('# upload-button'). click ....}); ' –
도움을 받으려면 ** 오류가 발생했을 때 ** 알면 도움이 될 것입니다. 또한 디버깅을 사용하면 코드에서 * 오류가 발생하는 곳을 알려줄 수 있습니다. 마지막으로, 이것이 첫 번째 시도입니까? 그걸 작동 시켰 니? 그렇지 않다면 공식 WP 문서의 예제를 따르는 것이 좋습니다. [wp.media] (https://codex.wordpress.org/Javascript_Reference/wp.media) –
예, 한 번 작동했지만 갑자기 멈췄다. 이것은 내 사이트가 4.7.1로 업데이트 된 시점이었습니다. 업로드 버튼을 클릭하면 오류가 발생합니다. 오류는'mediaUploader = wp.media.frames.file_frame = wp.media ({' – Max