仅适用于缩略图的自定义图像大小

时间:2014-09-13 作者:Michal Pelech

我解决了一个问题,我在模板中使用了几种不同大小的图像(add\\u image\\u size),但我只将它们用于缩略图,完全没有必要为上传到WP的每个图像创建这些大小,我在媒体中有成千上万的图像。不知道如何解决这个问题?谢谢你的帮助。

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

https://github.com/crstauf/WordPress-FeaturedImage-SpecialImageSize

试试这个;很久以前我自己写的。我有一个更新版本,很快就会发布。如果你有任何问题,请告诉我。

根据要求,功能的相关代码。主题的php:

// `post_type` => array(width,height,crop)
$featimg_sizes = array(
    \'post\' => array(50,20,false)
);

add_action(\'wp_ajax_set-post-thumbnail\',\'generate_featimg_size\',1);
function generate_featimg_size() {
    global $featimg_sizes;

$thumbnail_id = intval( $_POST[\'thumbnail_id\'] );
$type = get_post_type(intval( $_POST[\'post_id\'] ));

if (!isset($thumbnail_id)) return;
if (\'-1\' == $thumbnail_id) return;
if (!array_key_exists($type,$featimg_sizes)) return;

$size = $featimg_sizes[$type];
if (!isset($size[0]) || !isset($size[1]) || empty($size[0]) || empty($size[1])) return;
if (!isset($size[2])) $size[2] = false; // set $crop if left blank to false

$meta = wp_get_attachment_metadata($thumbnail_id);
$path = apply_filters(\'image_make_intermediate_size\',get_attached_file($thumbnail_id));

if ($newsize = image_make_intermediate_size($path,$size[0],$size[1],$size[2])) {
    $backupsizes = get_post_meta($thumbnail_id,\'_wp_attachment_backup_sizes\',true);
    $meta[\'sizes\'][\'ptfi_\'.$type] = $backupsizes[\'ptfi_\'.$type] = $newsize; // ptfi = post type featured image

    update_post_meta($thumbnail_id,\'_wp_attachment_metadata\',$meta);
    update_post_meta($thumbnail_id,\'_wp_attachment_backup_sizes\',$backupsizes);
}
}
`

结束

相关推荐

Can't edit thumbnails

我有两个相关的问题:在媒体库中,当我单击“编辑图像”时,在左侧部分看不到允许裁剪的图像加载。同样,我无法编辑nggallery缩略图,没有加载带有裁剪器的图像。此错误仅在使用“我的主题”时发生。当我换回来说二十一点时,效果很好。然而,我不知道是什么原因导致了我的主题。有什么建议吗?编辑:我关注了toscho的评论,我注意到下面的代码导致了这里描述的问题。其中一个功能足以引发问题。1) 此代码包含来自cdn的jquery<?php /************* INCLUDE JQUERY