web-dev-qa-db-fra.com

URL d'écho de la version longue de l'image sélectionnée

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 ...

1
Amanda Bynes

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' );
        }
2
fuxia