使用 wordpress 媒体编辑器限制用户在选择特色图像时裁剪图像

Restrict user to crop image on selecting featured image using wordpress media editor

我试图将用户限制为 select 仅具有 2:1 或 6:9 等纵横比的特色图片,为此我试图找到任何在之后运行的 Wordpress 挂钩selecting 特色图片但找不到任何东西,是否有任何挂钩或脚本,以便我可以在 selecting post 功能之后调用 wp.media 的 "Crop image" 功能图片。

就像网站图标一样,当我们select任何图像作为网站图标时,它会强制用户在自定义区域selecting图像时以1:1比例裁剪图像

我尝试使用自定义代码,但无法正常工作

您想要的是 add_image_size - 这将允许您添加自己的图像尺寸(如 "widescreen" 或“2x1”)并设置自己的尺寸和纵横比(包括裁剪)。然后,当您希望图像出现时,您调用您的图像大小。

Here's a whole bunch of info/examples on how to use it.

我试图找到任何挂钩来限制用户仅以预期的宽高比上传特色图片,但我做不到,但它是由 jQuery 和 wp.media 库完成的,首先我使用 jquery 检查图像比例,然后使用下面的代码打开图像编辑器弹出窗口来编辑图像,这是我的代码片段:-

$(document).on('click','#edit-thumb-ratio',function(e){
        e.preventDefault();

        feature_uploader = wp.media.featuredImage.frame();

        feature_uploader.on('open', function() {
            var selection = feature_uploader.state().get('selection');
            $('.media-frame-content').append('<div class="imgedit-wait" id=""></div>')
                      //   //remove all the selection first
            selection.each(function(image) {
                var attachment = wp.media.attachment( image.attributes.id );
                attachment.fetch();
                selection.remove( attachment ? [ attachment ] : [] );
            });

                      //   //add back current selection, in here let us assume you attach all the [id] to <div id="my_file_group_field">...<input type="hidden" id="file_1" .../>...<input type="hidden" id="file_2" .../>
            $("#postimagediv").find('input[type="hidden"]').each(function(){
                 var input_id = $(this);
                if( input_id.val() ){
                    attachment = wp.media.attachment( input_id.val() );
                    attachment.fetch();
                    selection.add( attachment ? [ attachment ] : [] );
                }
            });
            $('.imgedit-wait').show();
                setTimeout(function(){
                        $('.attachment-info .edit-attachment').trigger('click');
                },1000);                    
        });
        feature_uploader.on('select', function() {
            delete feature_uploader;
        });
        feature_uploader.open();
    });