2014-01-21 9 views
0

Wordpress为图像上传时创建的每个图像大小创建一个新的图像URL。它将图像大小以像素为单位添加到图像扩展前的字符串末尾。问题是,如果说中等图像的图像大小是300x300,wordpress可能会裁剪它以说300x180以保持它的维度。WordPress的选择图像大小为PHP变量

由于可能不存在结尾为-300x300.jpg的文件,因此当以编程方式获取较大版本的图像缩略图时,这会很困难。

有没有一种方法可以通过使用整个图像的URL来获取图像,例如PHP变量。 ?size=medium最后会加载正确的版本。我确信我已经用老版本的wordpress完成了这个工作,但是找不到任何文档来证明这一点。

+0

尝试从名称中删除尾部300x300,然后使用文件夹中的图像名称 –

+0

要么您必须修改上传图像重新尺寸的功能,或者您必须上传按原样添加图片。如果我们不知道管理员是否会上传或不上传。然后,我们必须应用反向逻辑,同时我们获取图像并按比例重新调整大小。 – Neocortex

回答

1

从文档:

<?php echo get_the_post_thumbnail($post_id, $size, $attr); ?> 

$大小

一个字符串的关键字(缩略图,中型,大型或全部)或表示以像素为单位的宽度和高度的2项数组,例如阵列(32,32)

https://codex.wordpress.org/Function_Reference/get_the_post_thumbnail

一下添加到PHP函数,使上述第一影像作品行,如果岗位没有一个特色形象。

function set_first_as_featured($attachment_ID){ 
    $post_ID = get_post($attachment_ID)->post_parent; 
    if(!has_post_thumbnail($post_ID)){ 
     set_post_thumbnail($post_ID, $attachment_ID); 
    } 
} 

add_action('add_attachment', 'set_first_as_featured'); 
add_action('edit_attachment', 'set_first_as_featured'); 
+0

这对特色图像很好,但不适用于其他图像。我已经使用函数PHP中的一行修改了代码,但应该与此结合使用。谢谢你的帮助。 –

1

您可以将图像尺寸在你的主题,add_image_size在任何地方使用注册,请参见:

add_image_size("your-custom-image-size", 300, 300, true); 

那么你就可以在你的主题使用,以及:

the_post_thumbnail("your-custom-image-size", $attr);