元框图像字段大小

Meta box image field size

我正在为 Wordpress 使用自定义元数据框和字段,并且添加了图像字段。

在前端我可以打印图像,但我无法为其添加应用图像尺寸。

在我的模块中,我设置了 CMB 字段:

array(
    'name' => __('Image', 'cmb'),
    'desc' => __('Upload an image or enter a URL.', 'cmb'),
    'id' => $prefix.
    'image',
    'type' => 'file',
    'allow' => array('url', 'attachment'),
),

为了在 single.php 文件中进行测试,我有:

global $post;
$image = get_post_meta($post->ID, "_cmb_image", true); 

这适用于以全尺寸打印图像:

<img src="<?php echo $image; ?>" alt="" /> 

我尝试了不同的方法来打印主题 functions.php 中设置的特定尺寸的图像。

例如试过这个:

<?php echo wp_get_attachment_image( get_post_meta( get_the_id(), '_cmb_image', true ), 'thumbnail', false, array( 'class' => 'vert-align-mid' ) ); ?>

还有这个:

<?php echo wp_get_attachment_image( $image, 'thumbnail' ); ?>

这不起作用,我得到的是空值。对如何以自定义尺寸打印图像有帮助吗?

从这段代码中,您将获得图像对象:

$image = get_post_meta($post->ID, "_cmb_image", true);

现在从此对象中检索图像 ID 并传递给以下函数:

$image->ID只是一个例子,它必须是你在那个对象中得到的。

wp_get_attachment_image ( int $image->ID, string|array $size = 'thumbnail', bool $icon = false, string|array $attr = '' )

我找到了解决方案。 CMB 字段类型也将存储 ID。它被存储:$id . '_id'。所以在我的例子中它将是 _cmb_image_id.

将这些添加到模板文件中。

<?php image = wp_get_attachment_image( get_post_meta( get_the_ID(), '_cmb_image_id', 1 ), 'thumbnail' ); ?>

在此回显图像之后:

<?php echo $image; ?>