J'utilise ce plugin pour faire écho à l'URL de l'image sélectionnée d'une publication dans l'en-tête:
<?php
/** Plugin Name: Post Thumbnail FB header */
function fb_header()
{
// Not on a single page or post? Stop here.
if ( ! is_singular() )
return;
$post_ID = get_queried_object_id();
// We got no thumbnail? Stop here.
if ( ! has_post_thumbnail( $post_ID ) )
return;
// Get the Attachment ID
$att_ID = get_post_thumbnail_id( $post_ID );
// Get the Attachment
$att = wp_get_attachment_image_src( $att_ID );
printf(
'<link rel="image_src" href="%s" />'
,array_shift( $att )
);
}
add_action( 'wp_head', 'fb_header' );
?>
Dans l'état actuel des choses, cela fait écho à l'image présentée. Je veux qu'il fasse écho à l'URL de la version large de l'image sélectionnée. Comment puis-je faire cela? Juste pour noter que toutes mes images présentées ont une grande version ...
Utilisez le deuxième paramètre de wp_get_attachment_image_src()
: $size
.
$att = wp_get_attachment_image_src( $att_ID, 'large-thumb' );
ou
$att = wp_get_attachment_image_src( $att_ID, array ( 900, 300 ) );
La taille est passée à image_downsize()
et là à image_get_intermediate_size()
. Si $size
est un tableau, WordPress recherchera la meilleure correspondance dans les images existantes:
// from wp-includes/media.php::image_get_intermediate_size()
// get the best one for a specified set of dimensions
if ( is_array($size) && !empty($imagedata['sizes']) ) {
foreach ( $imagedata['sizes'] as $_size => $data ) {
// already cropped to width or height; so use this size
if ( ( $data['width'] == $size[0] && $data['height'] <= $size[1] ) || ( $data['height'] == $size[1] && $data['width'] <= $size[0] ) ) {
$file = $data['file'];
list($width, $height) = image_constrain_size_for_editor( $data['width'], $data['height'], $size );
return compact( 'file', 'width', 'height' );
}