私のサイトには以下のコードがあります。
<?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を取得するにはどうすればよいですか。
ありがとう
テンプレートファイル内で作業している場合、このコードは機能します。しかし、私はそれをテストしませんでした。
<?php echo do_shortcode('[gallery size="full"]'); ?>
@ 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