Wordpress,用PHP在主题中显示已调整大小的图像

时间:2014-10-08 13:35:36

标签: wordpress

我正在编写一个接受一个媒体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>标记的宽度和高度属性以中间大小显示:

我做错了什么?

感谢您的帮助。

1 个答案:

答案 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
} 

因此,如果您的缩略图实际上是从一开始就生成的,那么值得检查,因为我从未按照您在问题中定义的方式进行操作。