【问题标题】:Wordpress - Upload image programmatically, width and height are 0Wordpress - 以编程方式上传图片,宽度和高度为0
【发布时间】:2015-03-07 12:21:16
【问题描述】:

我做了一个功能,允许用户将图像上传到我的 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 中手动添加 width: 100% 时,图像会显示出来

【问题讨论】:

  • 那么你的日志文件是怎么说的?会很有趣,因为这就是问题所在。
  • @arkascha 我在哪里可以找到日志。这是我第一次制作 wp 插件。
  • 啊,好的。我提到了您的 http 服务器写入的日志文件。这是在您的 http 服务器配置中配置的。通常类似于 /var/log/apache2/.... if 您正在使用 apache http 服务器。显然,其他服务器略有不同。所以:1. 你使用哪个 http 服务器 2. 日志文件在哪里配置?
  • @arkascha 我找到了错误日志,但今天没有任何内容,所以我假设此函数没有记录任何错误。
  • 好的。那么接下来:上传的文件在文件系统内部是什么样子的?那么:网络对图像的请求会产生什么结果?您也可以在浏览器的开发控制台中看到。

标签: php wordpress


【解决方案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 可以找到它的尺寸。

【讨论】:

    猜你喜欢
    • 2013-11-18
    • 1970-01-01
    • 1970-01-01
    • 2011-03-09
    • 2017-02-28
    • 1970-01-01
    • 2016-10-27
    • 2018-02-16
    • 1970-01-01
    相关资源
    最近更新 更多