humanmade/tachyon-plugin

重写WordPress图像URL以使用Tachyon

安装次数: 231,860

依赖关系: 2

建议者: 0

安全性: 0

星标: 82

关注者: 20

分支: 15

开放问题: 16

类型:wordpress-plugin

0.11.9 2024-04-15 12:52 UTC

README

Tachyon 是一个图像缩放服务,旨在与 Amazon S3 作为图像后端、AWS Lambda(或任何 node.js 服务器)一起使用,使用 sharp 处理图像,并位于 CDN(如 CloudFront 或 CloudFlare)之后。

此插件负责修改 WordPress 图像 URL 以使用 Tachyon 服务实例。

安装

  1. 上传并启用此插件。
  2. define( 'TACHYON_URL', 'https://your.tachyon.url/path/to/uploads' ) 添加到您的 wp-config.php 文件。

使用方法

通常以上步骤就足够了,但是您可以使用以下面向公众的函数和过滤器。

函数

tachyon_url( string $image_url, array $args = [] )

此函数返回托管在 Amazon S3 上的给定图像的 Tachyon URL。

$image_url = 'https://my-bucket.s3.us-east-1.amazonaws.com/path/to/image.jpg';
$args      = [
	'resize'  => '300,300',
	'quality' => 90
];

$url = tachyon_url( $image_url, $args );

过滤器

以下过滤器允许您修改插件输出和行为。

tachyon_disable_in_admin

默认为 true。您可以通过向插件或主题的 functions.php 中添加以下代码来覆盖此设置

add_filter( 'tachyon_disable_in_admin', '__return_false' );

tachyon_override_image_downsize

默认为 false。提供了一种防止 Tachyon 应用于从 WordPress 核心检索到的图像的方法,您可能希望在特定情况下手动使用 tachyon_url()

add_filter( 'tachyon_override_image_downsize', '__return_true' );

tachyon_skip_for_url

允许跳过给定图像 URL 的 Tachyon URL。默认为 false

add_filter( 'tachyon_skip_for_url', function ( $skip, $image_url, $args ) {
	if ( strpos( $image_url, 'original' ) !== false ) {
		return true;
	}
	
	return $skip;
}, 10, 3 );

tachyon_pre_image_url

过滤 Tachyon 图像 URL,排除查询字符串参数。您可能使用此功能来将 Tachyon 请求跨多个服务实例进行分片,例如。

add_filter( 'tachyon_pre_image_url', function ( $image_url, $args ) {
	if ( rand( 1, 2 ) === 2 ) {
		$image_url = str_replace( TACHYON_URL, TACHYON_URL_2, $image_url );
	}
	
	return $image_url;
}, 10, 2 );

tachyon_pre_args

过滤附加到 Tachyon 图像 URL 的查询字符串参数。

add_filter( 'tachyon_pre_args', function ( $args ) {
	if ( isset( $args['resize'] ) ) {
		$args['crop_strategy'] = 'smart';
	}
	
	return $args;
} );

tachyon_remove_size_attributes

默认为 true。默认情况下,移除图像标签上的 widthheight 属性,以防止在某些异常情况下发生纵横比扭曲,在这些情况下 srcset 大小具有不同的纵横比。

add_filter( 'tachyon_remove_size_attributes', '__return_true' );

鸣谢

由 Human Made 为高流量和大规模网站创建,例如 Happytables。我们在每月有数百万页面浏览量的网站上运行 Tachyon,并为数千个网站提供服务。

Joe Hoyle 编写和维护。

Tachyon 是由 Automattic Inc. 的 Photon 分支出来的。由于 Tachyon 不是一个通用的图像缩放器,而是使用 Amazon S3 中的媒体库,因此它与 Photon 的使用场景不同。

想加入这个有趣的团队吗? 加入我们,成为人类吧!