我有一个很好的小代码直接来自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_upload
或
wp_insert_attachment
.
最合适的回答,由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);
修复了它。