上传后重新生成缩略图

时间:2014-02-11 作者:Warface

我有一个很好的小代码直接来自Wordpress codex

if($_FILES[\'user_picture\'][\'size\'] != 0):
            if ( ! function_exists( \'wp_handle_upload\' ) ) require_once( ABSPATH . \'wp-admin/includes/file.php\' );
            $uploadedfile = $_FILES[\'user_picture\'];
            $upload_overrides = array( \'test_form\' => false );
            $movefile = wp_handle_upload( $uploadedfile, $upload_overrides );
            if ( $movefile ) {
                $wp_filetype = $movefile[\'type\'];
                $filename = $movefile[\'file\'];
                $wp_upload_dir = wp_upload_dir();
                $attachment = array(
                    \'guid\' => $wp_upload_dir[\'url\'] . \'/\' . basename( $filename ),
                    \'post_mime_type\' => $wp_filetype,
                    \'post_title\' => preg_replace(\'/\\.[^.]+$/\', \'\', basename($filename)),
                    \'post_content\' => \'\',
                    \'post_status\' => \'inherit\'
                );
                $attach_id = wp_insert_attachment( $attachment, $filename);
            }
        endif;
问题是它工作得很好,但它不能创建函数中设置的所有图像大小。php。我不想每次上传图像时都运行一个重新生成缩略图的插件,必须有一种方法在上传后创建所有这些缩略图。怎样

Update

在对其他脚本的工作方式进行了一些调查之后,我需要取回文件并使用wp_get_image_editor 函数使我的拇指。。。有点痛苦,知道什么。简直不敢相信wordpress在运行后不会调整图像大小wp_handle_uploadwp_insert_attachment.

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

正在添加

$attach_data = wp_generate_attachment_metadata( $attach_id, $filename );
wp_update_attachment_metadata( $attach_id,  $attach_data );
之后

$attach_id = wp_insert_attachment( $attachment, $filename);
修复了它。

结束

相关推荐

Removing blog page images

我有我的blog page here 然而,在我创建的一个网站上,我不太明白在哪里可以找到代码来去除我孩子主题上的图像。我使用的是2010年的代码,我已经设置了自己的博客模板页面,但它不起作用,所以我显然编辑了错误的文件。所以不是循环。php我想要编辑的文件,以便在主博客页面上删除这些图像?<?php /* How to display all other posts. */ ?> <?php else : ?> <div i