尝试让CMB2插件在页面上以WP默认中等大小显示图像。我可以让它显示图像,但该图像可以是用户想要的任何大小。我宁愿它被裁剪成固定大小。
在我设置的CMB职能中:
add_action( \'cmb2_admin_init\', \'cmb2_page\' );
function cmb2_page() {
$prefix = \'cmb_one_\';
$cmb_two->add_field( array(
\'name\' => __( \'Image Loader\', \'cmb2\' ),
\'desc\' => \'Upload an image or enter an URL.\',
\'id\' => $prefix . \'image_two\',
\'type\' => \'file\',
\'options\' => array(
\'url\' => true,
),
\'text\' => array(
\'add_upload_file_text\' => \'Add Image\'
),
\'query_args\' => array(
\'type\' => array(
\'image/jpeg\',
\'image/png\',
),
),
\'preview_size\' => \'medium\', // Image size to use when previewing in the admin.
) );
}
在页面上,我有:
<?php
echo $image_two = wp_get_attachment_image( get_post_meta( get_the_ID(), \'cmb_one_image_two\', 1 ), \'medium\' );
?>
如果我只使用以下工具,我就可以获得要显示的图像:
<?php
echo \'<img src="\'. $image_two .\'" alt="image dis">\';
?>
但是如果我这样做,就没有办法控制图像的大小了?
最合适的回答,由SO网友:sandrodz 整理而成
您可以获取附件的ID,然后使用该ID获取所需的任何大小。
https://github.com/CMB2/CMB2/wiki/Field-Types#file
文件上传器。默认情况下,它将存储文件url并允许附件或url。
This field type will also store the
attachment ID (useful for getting different image sizes). It will
store it in $id . \'_id\', 因此,如果您的字段id为wiki\\u test\\u image,则该id存储在wiki\\u test\\u image\\id中。您还可以将其限制为仅允许附件(不能手动键入URL),如果您计划使用附件id,这也很有用。该示例显示了其默认值,其中可能包含内联注释的值。
wp_get_attachment_image( get_post_meta( get_the_ID(), \'cmb_one_image_two_id\', 1 ), \'medium\' );
如果要将其裁剪为其他大小:
wp_get_attachment_image( get_post_meta( get_the_ID(), \'cmb_one_image_two_id\', 1 ), \'different_size\' );
并且在
functions.php
使用
add_image_sizeadd_image_size( \'different_size\', 220, 180 );