我正在尝试使用元数据箱在wordpress中存储逗号分隔的附件ID字符串.

我有MetaBox工作正常,但我试图让wp.media叠加打开方式允许用户选择多个图像,然后拖放它们,然后点击“选择”按钮,它将ID字符串放入元数据箱中.

请不要建议插件.我知道那里有很多它们,但是我将它构建成一个主题,并且想要最少的代码.

JS& PHP我有这个:

jQuery('.custom-post-gallery').on( 'click',function(e){
    e.preventDefault();

    var image_frame;
    if(image_frame){
       image_frame.open();
    }

    // Define image_frame as wp.media object
    image_frame = wp.media({
        title: 'Select gallery Images',library : {
            type : 'image'
        },multiple: true
    });

    image_frame.states.add([
        new wp.media.controller.Library({
            id:         'post-gallery',title:      'Select Images for the Post gallery',priority:   20,toolbar:    'main-gallery',filterable: 'uploaded',library:    wp.media.query( image_frame.options.library ),multiple:   image_frame.options.multiple ? 'reset' : false,editable:   true,allowLocalEdits: true,displaySettings: true,displayUserSettings: true
        });
    ]);

    image_frame.open();
});
<?PHP
    $Meta_key = 'custom_post_gallery';
    $image_ids = get_post_meta( $post->ID,$Meta_key,true );
?>
  
<input class="custom-post-gallery" name="<?PHP echo $Meta_key; ?>" type="text" value="<?PHP echo $image_ids; ?>"/>

此叠加层仅显示用于选择一个图像的UI,或者如果按住控制键,则选择多个图像,但没有拖放顺序等.我能以某种方式在“图库”模式下打开它吗?并为其提供用于当前所选图像的ID?

谢谢!

解决方法

如果我说得对,你有一个文本字段,点击打开媒体窗口,你想在点击选择按钮时将所选图像的id插入字段值(id用逗号分隔).
如果是这样,那么这就是我修改的内容:

固定:

由于分号错误(它在一个不能有分号的数组中)

displayUserSettings: true
}); // --> here

改性:

需要在此范围之外设置image_frame变量,并在重新打开操作后返回

var image_frame; // --> outside the scope
if(image_frame){
   image_frame.open();
   // --> add return
}

加法:

包装JS并将jQuery注入$scope作为范围,现在我们可以使用$sign代替jQuery并防止与其他JS脚本冲突:

(function($){
...
})(jQuery);

将文本字段对象设置为$that变量,以便我们在更深的范围内使用它

var $that = $(this);

添加选择操作,并将选中的图像ID以逗号分隔,插入字段值:

image_frame.on( 'select',function() {

            var ids = '',attachments_arr = [];

            // Get media attachment details from the frame state
            attachments_arr = image_frame.state().get('selection').toJSON();
            $(attachments_arr).each(function(e){
                sep = ( e != ( attachments_arr.length - 1 ) ) ? ',' : '';
                ids += $(this)[0].id + sep;
            });
            $that.val(ids);

        });

全部一起:

只是JS部分,它被修改:

(function($){

    var image_frame;

    $('.custom-post-gallery').on( 'click',function(e){

        e.preventDefault();

        // If the media frame already exists,reopen it.
        if (image_frame){
           image_frame.open();
           return;
        }

        var $that = $(this);

        // Define image_frame as wp.media object
        image_frame = wp.media({
            title: 'Select gallery Images',library : {
                type : 'image'
            },multiple: true
        });

        image_frame.states.add([
            new wp.media.controller.Library({
                id:         'post-gallery',displayUserSettings: true
            })
        ]);

        image_frame.open();

        image_frame.on( 'select',' : '';
                ids += $(this)[0].id + sep;
            });
            $that.val(ids);

        });

    });   

})(jQuery);

这对我有用,告诉我你是否有任何问题.

javascript – WordPress – 使用wp.media将图库叠加添加到元数据库的更多相关文章

  1. wordpress添加Html5的表单验证required方法小结

    这篇文章主要介绍了wordpress添加Html5的表单验证required方法小结,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  2. iOS设备上的Safari正在加载损坏的图像 – WordPress网站

    有问题的图像是JPEG,我把它们缩小到更小的尺寸.有问题的WordPress网站是响应式的,当我使用移动网络加载网站时就会发生这个问题.无线方面,它没有问题,但在3G/4G上,随机加载的图像,一些被破坏,图像交换位置,所以所有的css和js似乎搞砸了.我正在使用W3缓存来提高速度,但没有任何帮助.有些图像是半灰色,黑色,有时看起来有点破损.这只发生在带有safari浏览器的iOS设备上.其他人面临同样的问题?

  3. 在我的Android应用程序中从WordPress获取帖子

    我是Android开发的新手,我正在尝试创建一个只显示WordPress网站上的帖子类别和帖子的应用程序.请帮助我.解决方法您要做的是从wordpress创建某种RESTAPI,以返回对您的AndroidHTTP请求的JSON响应.要做到这一点,首先针对Android,您可以参考这篇文章:MakeanHTTPrequestwithandroid然后,对于服务器端(您的wordpress),您将不得

  4. 8个出色的WordPress SEO插件收集

    以下是几个一流的SEO插件列表,它们可以帮助我们提高WordPress站点在搜索引擎中的排名。

  5. 详解WordPress中用于更新和获取用户选项数据的PHP函数

    这篇文章主要介绍了WordPress中用于更新和获取用户选项数据的PHP函数,分别为对update_user_option()函数和get_user_option()函数用法的讲解,需要的朋友可以参考下

  6. WordPress用户登录框密码的隐藏与部分显示技巧

    这篇文章主要介绍了WordPress用户登录框密码的隐藏与部分显示技巧,需要的朋友可以参考下

  7. WordPress中设置Post Type自定义文章类型的实例教程

    这篇文章主要介绍了WordPress中设置Post Type自定义文章类型的实例教程,后台文章类型的设置是WordPress的一大特色,然而自带的文章类型往往并不够用,需要的朋友可以参考下

  8. WordPress开发中用于标题显示的相关函数使用解析

    这篇文章主要介绍了WordPress开发中用于标题显示的相关函数使用解析,讲解了single_cat_title函数和get_the_title函数和the_title函数的用法,需要的朋友可以参考下

  9. WordPress中调试缩略图的相关PHP函数使用解析

    这篇文章主要介绍了WordPress中调试缩略图的相关PHP函数使用解析,包括使用set_post_thumbnail_size来调整缩略图的大小,需要的朋友可以参考下

  10. WordPress中的shortcode短代码功能使用详解

    WordPress中的短代码能通过简单的函数集合创建宏代码来生成内容,方便函数调用,下面就让我们一起来看一下WordPress中的shortcode短代码功能使用详解.

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部