Output multiple og:image with widths 1200/800/640

Multiple images are supported according to https://ogp.me/#array.
Facebook suggest an image with at least 1080px.
WhatsApp ignores images >300px.

Bug: T282065
Change-Id: Ibc18df03fbd6f4ec9f4970331e1b5bf930710816
This commit is contained in:
Simon Legner 2021-10-26 12:49:57 +02:00
parent b28c4b85b8
commit d3f9a011fd

View file

@ -258,13 +258,19 @@ class PageImages {
return; return;
} }
// See https://developers.facebook.com/docs/sharing/best-practices?locale=en_US#tags // Open Graph protocol -- https://ogp.me/
$thumb = $imageFile->transform( [ 'width' => 1200 ] ); // Multiple images are supported according to https://ogp.me/#array
if ( !$thumb ) { // See https://developers.facebook.com/docs/sharing/best-practices?locale=en_US#images
return; // See T282065: WhatsApp expects an image <300kB
foreach ( [ 1200, 800, 640 ] as $width ) {
$thumb = $imageFile->transform( [ 'width' => $width ] );
if ( !$thumb ) {
continue;
}
$out->addMeta( 'og:image', wfExpandUrl( $thumb->getUrl(), PROTO_CANONICAL ) );
$out->addMeta( 'og:image:width', strval( $thumb->getWidth() ) );
$out->addMeta( 'og:image:height', strval( $thumb->getHeight() ) );
} }
$out->addMeta( 'og:image', wfExpandUrl( $thumb->getUrl(), PROTO_CANONICAL ) );
} }
} }