Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/humanmade/tachyon-plugin
WordPress plugin for Tachyon
https://github.com/humanmade/tachyon-plugin
aws-lambda aws-s3 image-processing wordpress wordpress-plugin
Last synced: about 2 months ago
JSON representation
WordPress plugin for Tachyon
- Host: GitHub
- URL: https://github.com/humanmade/tachyon-plugin
- Owner: humanmade
- Created: 2015-08-01T10:24:20.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2024-03-25T11:14:09.000Z (9 months ago)
- Last Synced: 2024-03-25T12:03:46.543Z (9 months ago)
- Topics: aws-lambda, aws-s3, image-processing, wordpress, wordpress-plugin
- Language: PHP
- Homepage: https://engineering.hmn.md/projects/tachyon/
- Size: 201 KB
- Stars: 79
- Watchers: 20
- Forks: 15
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-wp-speed-up - Tachyon - Tachyon is an image resizing processor built to be used withaccelerates your WordPress website Amazon S3 as the image backend, and sits behind a CDN such as CloudFlare. (CDN Integration Plugins)
README
Tachyon
Faster than light image processing. Inspired / forked from Photon.
A Human Made project. Maintained by @joehoyle.
[Tachyon](https://github.com/humanmade/tachyon) is an image resizing service built to be used with Amazon S3 as the image backend, AWS Lambda (or any node.js server) to process images using [sharp](http://sharp.pixelplumbing.com/en/stable/), and sits behind a CDN such as CloudFront or CloudFlare.
This plugin handles modifying WordPress image URLs to use a Tachyon service instance.
## Installation
1. Upload and enable this plugin.
2. Add `define( 'TACHYON_URL', 'https://your.tachyon.url/path/to/uploads' )` to your `wp-config.php` file.## Usage
Typically the above steps are all you need to do however you can use the following public facing functions and filters.
### Functions
#### `tachyon_url( string $image_url, array $args = [] )`
This function returns the Tachyon URL for a given image hosted on Amazon S3.
```php
$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 );
```### Filters
The following filters allow you to modify the output and behaviour of the plugin.
#### `tachyon_disable_in_admin`
Defaults to `true`. You can override this by adding the following code to a plugin or your theme's `functions.php`:
```php
add_filter( 'tachyon_disable_in_admin', '__return_false' );
```#### `tachyon_override_image_downsize`
Defaults to `false`. Provides a way of preventing Tachyon from being applied to images retrieved from WordPress Core at the lowest level, you might use this if you wanted to use `tachyon_url()` manually in specific cases.
```php
add_filter( 'tachyon_override_image_downsize', '__return_true' );
```#### `tachyon_skip_for_url`
Allows skipping the Tachyon URL for a given image URL. Defaults to `false`.
```php
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`
Filters the Tachyon image URL excluding the query string arguments. You might use this to shard Tachyon requests across multiple instances of the service for example.
```php
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`
Filters the query string parameters appended to the tachyon image URL.
```php
add_filter( 'tachyon_pre_args', function ( $args ) {
if ( isset( $args['resize'] ) ) {
$args['crop_strategy'] = 'smart';
}
return $args;
} );
```#### `tachyon_remove_size_attributes`
Defaults to `true`. `width` & `height` attributes on image tags are removed by default to prevent aspect ratio distortion that can happen in some unusual cases where `srcset` sizes have different aspect ratios.
```php
add_filter( 'tachyon_remove_size_attributes', '__return_true' );
```## Credits
Created by Human Made for high volume and large-scale sites, such as [Happytables](http://happytables.com/). We run Tachyon on sites with millions of monthly page views, and thousands of sites.Written and maintained by [Joe Hoyle](https://github.com/joehoyle).
Tachyon is forked from Photon by Automattic Inc. As Tachyon is not an all-purpose image resizer, rather it uses a media library in Amazon S3, it has a different use case to Photon.
Interested in joining in on the fun? [Join us, and become human!](https://hmn.md/is/hiring/)