我正在编写一个接受一个媒体ID作为属性的短代码。然后,此短代码应以add_image_size注册的现有大小显示图像。 问题:我的图片显示的大小不正确。
说明:
我的媒体图片已上传到WP库中。原始文件大小很大(1227x924)。媒体的ID为294.
我在functions.php中注册了一个图片大小:
function my_after_setup_theme(){
add_image_size('my-image-size', 210, 136, true);
}
add_action('after_setup_theme', 'my_after_setup_theme');
我在我的一个页面中插入了我的短代码:[my_shortcode imageid="294"]
我的短代码是:
function my_shortcode_func($atts)
{
$a = shortcode_atts(array(
'imageid' => 0,
), $atts);
if ($a['imageid'] == 0) {
// default placeholder image
$img = 'img src="http://placehold.it/210x136"/>';
} else {
// get resized (NOT WORKING !)
$img = wp_get_attachment_image($a['imageid'], 'my-image-size');
}
return $img;
}
add_shortcode('my_shortcode', 'my_shortcode_func');
我希望原始图像在新的缩略图文件中以正确的大小(即:210x136)调整大小。相反,$img
显示原始图像(1227x924),通过HTML <img>
标记的宽度和高度属性以中间大小显示:
我做错了什么?
感谢您的帮助。
答案 0 :(得分:1)
上传媒体后是否注册了缩略图尺寸?如果是这样,您将需要使用插件重新生成缩略图。
此外,我不认为你需要像你一样包装缩略图大小声明,我有以下内容;
if (function_exists('add_theme_support'))
{
add_theme_support('post-thumbnails'); // Featured image support for posts - you may not need this bit.
add_image_size('large', 700, '', true); // Large Thumbnail - This is the bit you would need
}
因此,如果您的缩略图实际上是从一开始就生成的,那么值得检查,因为我从未按照您在问题中定义的方式进行操作。