deliciousbrains/wp-image-processing-queue

在后台调整WordPress图片大小

1.0.0 2017-11-13 19:21 UTC

This package is auto-updated.

Last update: 2024-08-26 18:26:32 UTC


README

Image Processing Queue是WordPress主题的在线即时(OTF)图像处理(例如 Aqua Resizer)的替代品。

与OTF图像处理类似,它允许主题开发者为特定的主题上下文定义图像大小,而不是为所有上传的图像定义大小。这大大减少了需要调整大小的图像数量,从而减少了磁盘空间的使用,并缩短了上传图像时的等待时间。

Image Processing Queue在图像尚未存在时的行为与OTF图像处理不同。OTF立即生成图像,最终用户必须等待图像生成。使用Image Processing Queue则无需等待。它立即返回一个已存在的图像(即与请求的图像大小最接近的图像),并将图像大小添加到队列中。图像大小将在后台使用WP Queue悄悄生成。

Image Processing Queue比OTF更好地适应响应式主题。它允许主题开发者定义一个图像大小列表,这些大小将最适合他们主题的响应式断点。由Image Processing Queue生成的图像将添加到帖子元数据中,以便WordPress核心的响应式函数会自动将它们添加到srcset中,并在从媒体库中删除图像时从文件系统中删除它们。

安装

作为插件安装

要将Image Processing Queue作为插件安装,请在您的WordPress仪表板上搜索"Image Processing Queue",并从中安装。

作为库安装

如果您是插件或主题开发者,您需要使用Composer要求Image Processing Queue

$ composer require deliciousbrains/wp-image-processing-queue

以下模板需要添加到您的项目中,这将加载所需的文件并确保WP cron在后台处理图像

require_once '/vendor/autoload.php';

Image_Processing_Queue\Queue::instance();

wp_queue()->cron();

还需要创建以下数据库表

CREATE TABLE {$wpdb->prefix}queue_jobs (
id bigint(20) NOT NULL AUTO_INCREMENT,
job longtext NOT NULL,
attempts tinyint(3) NOT NULL DEFAULT 0,
reserved_at datetime DEFAULT NULL,
available_at datetime NOT NULL,
created_at datetime NOT NULL,
PRIMARY KEY  (id)

CREATE TABLE {$wpdb->prefix}queue_failures (
id bigint(20) NOT NULL AUTO_INCREMENT,
job longtext NOT NULL,
error text DEFAULT NULL,
failed_at datetime NOT NULL,
PRIMARY KEY  (id)

您可以使用wp_queue_install_tables()辅助函数创建所需的数据库表。这应该从激活钩子或自定义升级程序中调用。

使用方法

当您想在主题中输出图像时,只需调用ipq_get_theme_image()函数,传递图像帖子的ID、您为在此特定上下文中决定的大小,以及用于<img>标签的附加HTML属性数组

echo ipq_get_theme_image( $post_id, array(
        array( 600, 400, false ),
        array( 1280, 720, false ),
        array( 1600, 1067, false ),
    ),
    array(
        'class' => 'header-banner'
    )
);

您可以通过传递图像ID和所需大小来使用ipq_get_theme_image_url()函数直接返回图像URL。如果图像大小不存在,它将被推送到队列,并返回最接近匹配的图像URL。

echo ipq_get_theme_image_url( $post_id, array( 600, 400, false ) );

许可

GPLv2+