我制作了一个功能,允许用户将图像上传到我的wordpress网站。上传工作正常,但是当我打开包含此上传图片的帖子时,图片不会显示。当我在Firebug中打开它时,我注意到图像宽度和高度为0。
我如何上传图片,使其显示为我上传媒体库表格。 这是我的代码:
if(isset($_FILES["image"])) {
if (!function_exists('wp_handle_upload')) require_once(ABSPATH . 'wp-admin/includes/file.php');
$uploadedfile = $_FILES['image'];
$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);
set_post_thumbnail($pageid, $attach_id);
}
}
编辑:
当我在Firebug中手动添加宽度:100%时,图像显示
答案 0 :(得分:1)
我找到了解决这个问题的方法。
上传图片后,元数据未更新。所以在这个函数的最后我添加了这个:
require_once( ABSPATH . 'wp-admin/includes/image.php' );
$attach_data = wp_generate_attachment_metadata( $attach_id, $filename );
wp_update_attachment_metadata( $attach_id, $attach_data );
此代码更新此图像的元数据,因此,Wordpress可以找到它的尺寸。