programing

Wordpress - Uncatched TypeError: wp.media가 함수가 아닙니다.

easyjava 2023. 10. 1. 23:07
반응형

Wordpress - Uncatched TypeError: wp.media가 함수가 아닙니다.

저는 제 사용자들이 제 웹사이트에 이미지를 업로드할 수 있기를 바랍니다.로그인할 필요가 없습니다.

이 작업을 수행하고자 하는 사용자 지정 페이지 템플릿이 있습니다.제 안에는 다음과 같은 코드 조각이 들어있습니다.functions.php

wp_deregister_script('jquery');
wp_enqueue_script('jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js', false, '1.11.3');
....
---------more codes are here---------
....
else if( in_category( $excluded, get_the_ID() ) || get_page_template_slug() == 'mediaCollector.php') {
    wp_enqueue_media();
    wp_enqueue_style('media_collector', get_stylesheet_directory_uri() . '/mediaCollector.css');
    wp_enqueue_style('style_responsive', get_stylesheet_directory_uri() . '/style-responsive.css');
    wp_enqueue_style('font-awesome', plugins_url() . '/my-plugin/css/font-awesome.min.css');

    wp_enqueue_script('mediaCollectorScript', get_stylesheet_directory_uri() . '/mediaCollector.js');
}
....
---------more codes are here---------
....

이미지 업로드 버튼(사용자가 미디어를 업로드할 수 있는 팝업)을 클릭했을 때 발생하는 동작에 대한 코드입니다.

    \$j = jQuery.noConflict();

    /* Logo Upload */
    \$j(document).ready(function() {
        \$j('.upload-btn').click(function(a) {
            var that = this;
        a.preventDefault();
        var b = wp.media({
            title: 'Upload Image',
            multiple: !1
        }).open().on('select', function(a) {
            var c = b.state().get('selection').first();
            var d = c.toJSON().url;
            \$j(that).parent().find('input[type=text]').val(d)
        });
    });

하지만 업로드 버튼을 클릭하면 다음과 같은 오류가 발생합니다.

Uncaught TypeError: wp.media is not a function

내가 뭘 빼놓았나요?어떤 도움이든 감사히 받겠습니다.

이것을 추가해 보십시오.

function load_media_files() {
    wp_enqueue_media();
}
add_action( 'admin_enqueue_scripts', 'load_media_files' );

또한 만약 당신이the reference is missingjavascript 파일에서 이것도 시도해보세요.

wp_enqueue_script('mediaCollectorScript', get_stylesheet_directory_uri() . '/mediaCollector.js', array('jquery', 'media-upload'), '0.0.2', true);

기본적으로 당신은 세 번째 주장을 추가해야 합니다.wp_enqueue_script함수는 당신의 자바스크립트에 대한 종속성이며, 이 경우 다음과 같습니다.jquery그리고.media-upload.

그 해결책은 내 경우에 완벽하게 작동했습니다.

추가합니다.functions.php활성 테마의 파일 또는 플러그인 파일에 저장합니다.

function load_media_files() {
    wp_enqueue_media();
}

add_action( 'admin_enqueue_scripts', 'load_media_files' );

언급URL : https://stackoverflow.com/questions/44468578/wordpress-uncaught-typeerror-wp-media-is-not-a-function

반응형