显示图像问题的WordPress Java脚本

时间:2017-12-02 作者:BadAddy

我想我可能有点困惑,但我在每一行都有一个列表和一个选择按钮。当用户单击按钮时,会显示一个模式,我试图简单地获取一个要显示的图像(带有post\\u id)。

因此,在PHP中,我有以下内容:

<img id="changeImage"src="
<?php 
    echo $v[0]->user_image_id ? 
        wp_get_attachment_image_src( $v[0]->user_image_id,
            array( \'width\' => 75, \'height\' => 75 ))[0] :
            wp_get_attachment_url( 259 ); ?>" style="width: 75px; height: 75px"/>
这是列表的一部分,因此会显示每个图片(化身)。然后点击一个按钮,我已经有了post_id 使用此代码:

$(\'.selectedBtn\').on(\'click\', function (e) {
            e.preventDefault();
            var elm = $(this);
            var data;
            var dataArray = JSON.parse(sessionStorage.getItem(\'dataArray\'));
            $.each(dataArray, function(k, v) {
                if(parseInt(v[0].wyol_list_id) === elm.data(\'wd\')) {
                    data = v[0];
                    console.log(data);
                    $(\'#wd_request_shoppers_name\').text(v[0].user_name);
                    $(\'#wd_request_store\').text(v[0].wd_store);
                    var imgid = v[0].user_image_id ? v[0].user_image_id : 259;
                    console.log(wp.media());
                    // USAGE:
                    preloadAttachment(imgid, function (attachment) {
                        console.log(attachment.get(\'url\'));
                        console.log(wp.media.attachment(imgid).get(\'url\')); // this also works
                    });
                        $(\'#wd_request_shoppers_image\').prop(\'src\',  wp.media.attachment(imgid).get(\'url\'));
                            v[0].instructions ? $(\'#wd_request_shoppers_detail\').text(v[0].instructions) : \'\';
                            $(\'#exampleModal1\').foundation(\'open\');
                        }
                    });
                    //console.log(elm.data(\'wd\'));
                });
                $(\'#closeModal\').on(\'click\', function () {
                    $(\'#exampleModal1\').foundation(\'close\');
                });
            });
但我得到的只是这个控制台。日志错误:

(索引):352未捕获类型错误:无法读取未定义的属性“attachment”

在这一行:352 if(可湿性粉剂介质附件(ID))。获取(\'url\')){

那么,WP有没有能力在WP中获取url呢?

提前感谢

阿迪

2 个回复
SO网友:Tom J Nowell

你需要打电话wp_enqueue_media() 否则wp 对象将没有media 选项

例如,转到WP Admin并调出JS控制台并键入wp.media 在仪表板上,它不会工作。请在“媒体”页面上重试,这一次将正常工作。

https://codex.wordpress.org/Javascript_Reference/wp.media

要使用JavaScript API,首先必须初始化所有需要的JavaScript库和样式:

wp_enqueue_media();

SO网友:BadAddy

在汤姆的帮助下,我通过使用wp.media.model 结果是这样的:

var attachment = new wp.media.model.Attachment.get(imgid);
                    attachment.fetch({
                        success: function (att) {
                            if (_.contains([\'png\', \'jpg\', \'gif\', \'jpeg\'], att.get(\'subtype\'))) {
                                //console.log(att.attributes);
                                $("#wd_request_shoppers_image").attr("src", att.attributes.sizes.thumbnail.url);
                            }
                        }
                    }); 
不确定这是最快的方法,但确实有效。

希望它能帮助别人。

结束

相关推荐

OnClick帖子标题在管理区域的javascript文件不起作用

我试图加载一个弹出窗口,点击管理区的帖子标题,然后通过元查询获取数据,并在弹出窗口中显示,但在控制台中显示错误,js函数未定义。看起来文件没有正确包含,我尝试了很多方法,但仍然是一样的。我正在尝试将该文件包含在插件名“tasks”中,js文件位于tasks/assets/js/functins.jshttp://prntscr.com/gv2ea2这里我包括脚本文件add_action(\'wp_enqueue_scripts\',\'tasks_js_file_func\'); &#x