web-dev-qa-db-ja.com

get_post_gallery_imagesはサムを返します。フルサイズが欲しい

私のサイトには以下のコードがあります。

<?php // image gallery content 
if( has_shortcode( $post->post_content, 'gallery' ) ) {                     
    $gallery = get_post_gallery_images( $post->ID );


    $image_list = '<ul id="cfImageGallery">';                       
    foreach( $gallery as $image ) {// Loop through each image in each gallery
        $image_list .= '<li><img src=" ' . str_replace('-150x150','',$image) . ' " /></li>';
    }
    $image_list .= '</ul>';                     
    echo $image_list;                       
}                         
?>

私の問題は、get_post_gallery_imagesが塗りつぶしサイズではなくサムファイルを返すことです。そのため、str_replace関数を使用して解決します。

フルサイズのURLを取得するにはどうすればよいですか。

ありがとう

5
chifliiiii

テンプレートファイル内で作業している場合、このコードは機能します。しかし、私はそれをテストしませんでした。

<?php echo do_shortcode('[gallery size="full"]'); ?>
1
tfer77

@ tfer77が正しい答えを出しました。私はここでもっと良い方法でそれを説明しています。

次のような投稿コンテンツのギャラリーのショートコードにsize="full"属性を追加する必要があります。

[gallery ids="836,830,829" size="full"]

今あなたが使うとき

$gallery = get_post_gallery_images( $post->ID );

フルサイズの画像が得られます。フィルタget_post_galleryを使って同じことをチェックできます

テーマのfunctions.phpファイルに以下のコードを貼り付けます。

add_filter( 'get_post_gallery', 'wpse_get_full_size_gallery_images', 10, 3 );
function wpse_get_full_size_gallery_images( $gallery, $post, $galleries ) { 
    var_dump($gallery);
}

get_post_gallery_imagesを使用したページでは、次のように画像のURLが表示されます。

http://www.siteurl.com/wp-content/uploads/2013/10/eiffel-tower.jpg

のではなく

http://www.siteurl.com/wp-content/uploads/2013/10/eiffel-tower-150x150.jpg

5
Maruti Mohanty