在模板文件和函数中设置帖子缩略图大小。php

时间:2012-11-04 作者:benlevywebdesign

对于我的帖子,我有一个用于帖子图像的框,框的大小是214 x 73。我希望图像适合盒子的宽度,并将其裁剪为73像素的高度。

这就是我迄今为止的职能。php文件

<?php add_theme_support( \'post-thumbnails\'); set_post_thumbnail_size(); 


if ( function_exists( \'add_image_size\' ) ) { 
    add_image_size( \'post-thumb\', 214, 73 );
    }?>
这就是我的内容。php文件:

<?php the_post_thumbnail(\'post-thumb\'); ?>

我在做什么是对的/错的?我需要修复什么才能使其正常工作?还有可能在裁剪图像时使其水平居中,以便您看到图像的中间吗?

您可以在此处查看我的主题:http://benlevywebdesign.com/wordpress/ 查看post缩略图框

3 个回复
最合适的回答,由SO网友:Steve 整理而成

我不认为你的代码是这里的问题。但你需要注意并解释一些注意事项。

首先,请始终记住,使用add\\u image\\u size()时,如果在注册新大小之前上载,WordPress不会重新生成图像大小。新注册的大小仅适用于将来的上载。

默认情况下,不会为以前上载的图像创建新大小。您可以使用“重新生成缩略图”或类似插件来创建和更新注册的大小除非将add\\u image\\u size()上的“裁剪”选项设置为TRUE,否则实际上是在缩放图像以适应尺寸的边界。因此,上载超出边界(高度或宽度)的图像将导致上载的缩小版本。我的理解是,缩放是成比例的,因此在您的情况下,如果上载的图像为428 px w x 73 px高,则生成的图像将为214 px w x 36 px高。

当向最终用户提供自定义尺寸时,这可能会变得非常棘手。

SO网友:Chip Bennett

有两件事:

务必set $crop to true (hard-crop) in your add_image_size() call. 默认为false (盒形裁剪):

add_image_size( \'post-thumb\', 214, 73, true );
如果已将图像添加到帖子中,则需要重新生成中间图像,例如通过Regenerate Thumbnails Plugin.

编辑:您可以删除set_post_thumbnail_size() 调用,因为您没有向其传递任何参数。

SO网友:Babar Al-Amin

您可以使用TimThumb 使用PHP裁剪图像的脚本,使其适合您的空间。这是一个用PHP自动裁剪图像的好脚本。许多高级主题和插件使用它来生成帖子特色图片和其他内容。

无论如何,使用TimThumb 风险自负,因为这可能导致安全缺陷。

结束