Compatibility: do not serve images with Jetpack CDN when active
When Jetpack's image CDN is active, core calls to retrieve images return an image served by the CDN. Since Fediverse instances usually fetch and cache the data themselves, we do not need to use the CDN for those images when returned by the ActivityPub plugin. In fact, we really do not want that to happen, as Fediverse instances may get errors when trying to fetch images from the CDN (they may get blocked / rate-limited / ...). Let's hook into Jetpack's CDN to avoid that.
This commit is contained in:
parent
47dc2f72d1
commit
3f4c44db05
1 changed files with 17 additions and 0 deletions
|
@ -306,7 +306,24 @@ class Post {
|
|||
// get URLs for each image
|
||||
foreach ( $image_ids as $id ) {
|
||||
$alt = \get_post_meta( $id, '_wp_attachment_image_alt', true );
|
||||
|
||||
/**
|
||||
* If you use the Jetpack plugin and its Image CDN, aka Photon,
|
||||
* the image strings returned will use the Photon URL.
|
||||
* We don't want that since Fediverse instances already do caching on their end.
|
||||
* Let the CDN only be used for visitors of the site.
|
||||
*/
|
||||
if ( class_exists( 'Jetpack_Photon' ) ) {
|
||||
\remove_filter( 'image_downsize', array( \Jetpack_Photon::instance(), 'filter_image_downsize' ) );
|
||||
}
|
||||
|
||||
$thumbnail = \wp_get_attachment_image_src( $id, 'full' );
|
||||
|
||||
// Re-enable Photon now that the image URL has been built.
|
||||
if ( class_exists( 'Jetpack_Photon' ) ) {
|
||||
\add_filter( 'image_downsize', array( \Jetpack_Photon::instance(), 'filter_image_downsize' ), 10, 3 );
|
||||
}
|
||||
|
||||
$mimetype = \get_post_mime_type( $id );
|
||||
|
||||
if ( $thumbnail ) {
|
||||
|
|
Loading…
Reference in a new issue