Wordpress-未捕获的TypeError:wp.media不是函数

Roy*_*Roy 1 javascript wordpress jquery

我希望我的用户能够将图像上传到我的网站。他们不必登录。

我有一个自定义页面模板,我想在其中执行此操作。我内部有以下代码块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---------
....
Run Code Online (Sandbox Code Playgroud)

这是单击“上传图像”按钮时(打开用户可以在其中上传媒体的弹出窗口)时发生的代码。

    \$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)
        });
    });
Run Code Online (Sandbox Code Playgroud)

但是单击“上传”按钮时出现以下错误。

Uncaught TypeError: wp.media is not a function

我想念什么吗?任何帮助表示赞赏。

小智 6

该解决方案在我的案例中非常有效

将其添加到functions.php活动主题的文件或插件文件中。

function load_media_files() {
    wp_enqueue_media();
}

add_action( 'admin_enqueue_scripts', 'load_media_files' );
Run Code Online (Sandbox Code Playgroud)


ces*_*son 5

尝试添加这个

function load_media_files() {
    wp_enqueue_media();
}
add_action( 'admin_enqueue_scripts', 'load_media_files' );
Run Code Online (Sandbox Code Playgroud)

也缺少参考wp_enqueue_script('mediaCollectorScript',get_stylesheet_directory_uri()。'/mediaCollector.js',array('jquery','media-upload'),'0.0.2',true);