具有自定义图像大小的Gutenberg自定义块插件

时间:2018-08-23 作者:Luke

我正在为wordpress使用custum gutenberg块插件(https://neliosoftware.com/blog/how-to-create-your-first-block-for-gutenberg/)

此块正在使用图像,但始终选择全尺寸图像。我希望它选择像标准古腾堡图像或图库块一样的自定义图像大小。浏览网页时,我找不到任何具有这些选项的Guteberg插件。你能给我一些关于如何获得这些功能的建议吗?有可能吗?

谢谢你为帮助我所做的一切努力。

最佳卢卡斯

3 个回复
SO网友:jezremy

是的,这是可以做到的。

你在使用MediaUpload吗?选择图像后,MediaUpload将返回该图像对象,其中包括大小:full、large、medium等-这将包括您定义的任何自定义大小。然后,不是将url分配给属性,而是保存所需大小的url。

这里演示了这一点http://jschof.com/gutenberg-blocks/wordpress-gutenberg-blocks-example-creating-a-hero-image-block-with-inspector-controls-color-palette-and-media-upload-part-2/在标题“MediaUpload及其返回的对象”下

Ie在古腾堡区块的编辑部分:

function onImageSelect(imageObject) {
    /* want to see the sizes returned? console log it */
    console.log(imageObject);
    setAttributes({
        backgroundImage: imageObject.sizes.full.url
    })
}

...

<div>
    <strong>Select a background image:</strong>
    <MediaUpload
        onSelect={onImageSelect}
        type="image"
        value={backgroundImage}
        render={({ open }) => (
            <button onClick={open}>
                Upload Image!
            </button>
        )}
    />
</div>
您可能需要一个条件来检查您的图像大小是否符合大小,如果不符合,则使用完整图像。

SO网友:Ashiquzzaman Kiron

管理上传图像大小的几种方法-

定义具有默认图像大小的新属性,并将其添加到块编辑功能中。

使用下拉选项创建inspector控件,并将小图像大小设置为默认值。从下拉选项中,用户可以选择图像大小。根据下拉选项,将添加CSS类,这些添加的CSS类限制图像大小。

这两种方法都需要添加大量代码。最简单的方法是

在现有图像类中定义和限制图像大小,如nelio-testimonial-image

SO网友:user1861582

要在媒体对象中返回自定义媒体图像大小,需要使用image\\u size\\u names\\u choose添加这些图像:

add_action( \'init\', \'DE_add_image_sizes\' );
function DE_add_image_sizes() {
    /* Custom Images */
    add_image_size( "bannerLarge", 1593, 513, true );
}

add_filter( \'image_size_names_choose\', \'DE_custom_sizes\' );

function DE_custom_sizes( $sizes ) {
    return array_merge( $sizes, array(
        \'bannerLarge\' => __(\'Banner Image\'),
    ) );
}

结束