如何使帖子的缩略图保持动画

时间:2014-09-05 作者:Kris S

当我上传带有动画的帖子时。gif,缩略图将生成新图像,并且不会保持动画。它会在帖子里保持活力,这很好。它似乎调整了的大小。gif图像并将其转换为静态图像,因为它生成的图像大小与原始文件的大小相同。是否有要添加或删除的代码阻止它为缩略图生成新图像,使其只调整为gif大小?

2 个回复
SO网友:Robert hue

实际上WordPress渲染上传的图像。因此,如果上载动画gif,它将不会保持动画状态。阅读这篇关于如何克服这些问题的文章。

我还没有读完,但正如Howdy\\u McGee所说,你必须使用一个插件。

Essential WordPress Plugins for Working With Animated GIFs

SO网友:Tobi G.

可以使用添加筛选器add_filter() 勾引wp_generate_attachment_metadata 要教会Wordpress正确调整gif动画图像的大小,请执行以下操作:

/**
 * Filters the generated attachment meta data.
 * @param array $metadata An array of attachment meta data.
 * @param int $attachment_id Current attachment ID.
 * @param string $context Additional context. Can be \'create\' when metadata was initially created for new attachment or \'update\' when the metadata was updated.
 * @return array
 * @author: gresser 2020-11-26
 */
public function resizeGifs(array $metadata, int $attachment_id, string $context)
{
    if (preg_match(\'/\\.gif$/\', $metadata[\'file\'])) {

        foreach ($metadata[\'sizes\'] as $image_site) {

            $file_path_original = wp_upload_dir()[\'basedir\'] .\'/\'. $metadata[\'file\'];
            $imagick = new Imagick($file_path_original);
            $imagick = $imagick->coalesceImages();

            $width = $image_site[\'width\'];
            $height = $image_site[\'height\'];

            foreach ($imagick as $frame) {
                $frame->cropThumbnailImage($width, $height);
                $imagick->setImagePage($width, $height, 0, 0);
            }
            $imagick = $imagick->deconstructImages();

            $file_path_thump = wp_upload_dir()[\'path\'] .\'/\'. $image_site[\'file\'];
            $imagick->writeImages($file_path_thump, true);
        }
    }
    return $metadata;
}

结束

相关推荐

黑客可以对我的wp-config.php做什么

我正在努力保护我的wordpress博客。我在网上看到一些帖子,我应该改变我的table_prefix 隐藏我的wp-config.php. 但是,我不明白吗?攻击者可以对我的wp-config.php? 我的意思是有我的db配置,但攻击者需要我的DB_HOST 例如,要连接到我的db,哪一个不是那么容易获得?(我的情况是:define(\'DB_HOST\', \'localhost\');, 攻击者无法使用它连接到我的数据库)还是我错过了什么?非常感谢您的回复!