停止WordPress自动生成大小的图像文件

时间:2018-02-26 作者:Cedon

我有一个自定义的帖子类型,带有一个图片上传元字段。但每次我上传一张图片时,我都会从主题的functions.php 文件

有没有办法禁用这些?我目前想的方法是:

$image_sizes = get_image_sizes();

foreach( $image_sizes as $size ) {
   $size_name = "{$size}";
   remove_image_size( $size_name );
}

// Process Upload as Normal

foreach( $image_sizes as $size ) {
   $size_name = "{$size}";
   $size_width = $size[\'width\'];
   $size_height = $size[\'height\'];
   $size_crop = $size[\'crop\'];

   add_image_size( $size_name, $size_width, $size_height, $size_crop );
}
所以它会在if() 根据上传MIME类型中的条件,删除所有注册的图像大小,处理上传,然后重新添加所有图像大小。

但这似乎很笨重,容易出现问题。尤其是因为这是一个插件,而不是一个主题。

是否有一个钩子或其他东西可以用来从自定义帖子类型编辑器中排除上传?

1 个回复
SO网友:Mark Kaplun

这是一个有问题的想法。Wordpress在图像(或任何其他上传文件)和任何内容(帖子)之间没有任何强连接。这意味着理论上你不能做出这样的决定if it is an image on page do X 因为没有任何东西可以确保图像不会在其他地方使用。

这是一个wordpress的设计决策,坦率地说,尽管我个人不喜欢它,但与它作斗争是没有意义的,因为你将不得不不断地与它的副作用作斗争(例如图像再生),而且除了混乱的上传目录外,它不会造成太大的损害。唯一真正的解决方案是wordpress切换到动态图像生成,这在短期内不太可能发生。

结束

相关推荐

Get images by category

我目前获取滑块图像的方法是使用以下工作正常的代码:$args = array( \'post_type\' => \'attachment\', \'sort_order\' => \'ASC\', \'sort_column\' => \'menu_order\', ); $attachments = get_posts($args); if ($attachments) { $