web-dev-qa-db-ja.com

注目画像の大型版のエコーURL

このプラグインを使用して、投稿のおすすめ画像のURLをヘッダーに表示します。

<?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' );
?>

現状では、エコーは注目のイメージです。おすすめ画像のラージバージョンのURLをエコーするようにします。 これを行うにはどうすればよいですか?注目すべきすべての画像に大きなバージョンがあります。

1
Amanda Bynes

wp_get_attachment_image_src()の2番目のパラメータ:$sizeを使用します。

$att    = wp_get_attachment_image_src( $att_ID, 'large-thumb' );

または

$att    = wp_get_attachment_image_src( $att_ID, array ( 900, 300 ) );

サイズはimage_downsize()に渡され、そこからimage_get_intermediate_size()に渡されます。 $sizeが配列の場合、WordPressは既存の画像の中から最適なものを探します。

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