deliciousbrains / wp-image-processing-queue
在后台调整WordPress图片大小
Requires
- php: >=5.3.0
- a5hleyrich/wp-queue: ^1.2
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 ) );