shimodarさん、こんにちは。
可能ではあります。
1つは、wp_get_attachment_urlにフックして、フック内でwp_get_attachment_image_srcを使って中サイズのURLを返す方法。これはギャラリー機能のコードには一切手をつけずコード量も少なくてすみますが、本来フルサイズで表示される画像が中サイズになってしまう可能性があります。
2つ目は、ギャラリーのコードそのものを差し替えて、中サイズの画像へリンクされるようにするものです。この方法は、ギャラリー以外には一切影響は出ない代わりに、ギャラリーのコード全てを書き直すことになるので、コードの量はそこそこ長くなります。下記の質問にある方法が、ギャラリー機能を一旦削除し、再度登録しなおす方法になるので参考にしてみてください。
ギャラリー機能を使い、スワップイメージを導入したい
>>jim912さま
アドバイスありがとうございました!
後者の方法でいまためしているところなのですが、紹介いただいたリンクのコード中の土の部分がそれにあたるのかよくわかりませんでした。
‘large_size’ => ‘medium’,
↑
の部分かと思い、いろいろ試しているのですが、うまく機能していないのが現状です。
ギャラリーのサムネイルをクリックした場合に、どうすれば大きな画像は中サイズのものだとシステム側に認識させることができるのか、
さらにアドバイス、ヒントをいただけますと嬉しいです。
どうぞよろしくお願い致します。
shimodarさん
どこまで実現できているか文面からはわからないので、とりあえず全手順説明します。
- まず、wp-includes/media.phpに記述されているギャラリーのソースを生成する関数gallery_shortcodeを、そっくりそのままテーマのfunctions.phpにコピーして関数名を変更します。
- 先の回答で例示した質問を参考に、デフォルトのギャラリーショートコードを一旦削除し、テーマにコピーしてきた関数名で再度ギャラリーショートコードを登録します。
- shortcode_attsの配列の中に、開く画像のサイズが指定できるよう large_size という配列を追加します。
extract(shortcode_atts(array(
'order' => 'ASC',
'orderby' => 'menu_order ID',
'id' => $post->ID,
'itemtag' => 'dl',
'icontag' => 'dt',
'captiontag' => 'dd',
'columns' => 3,
'size' => 'thumbnail',
'large_size' => 'medium',
'include' => '',
'exclude' => ''
), $attr));
- ギャラリーの画像表示およびリンクのHTMLソースを生成している部分は、下記になります。ここでは、linkというパラメータの指定がfileだったときには元の画像を、それ以外の場合は、アタッチメントページへのリンクを生成しています。
$link = isset($attr['link']) && 'file' == $attr['link'] ? wp_get_attachment_link($id, $size, false, false) : wp_get_attachment_link($id, $size, true, false);
- この部分をカスタマイズして、linkパラメータがfileだったら、large_sizeで指定されたサイズの画像へのリンクとギャラリーで表示する画像のHTMLソースを生成するように変更します。
if ( isset($attr['link']) && 'file' == $attr['link'] ) {
list( $large_src, $large_width, $large_height ) = wp_get_attachment_image_src( $id, $large_size );
$link = '<a href="' . $large_src . '">' . wp_get_attachment_image( $id, $size ) . '</a>';
} else {
$link = wp_get_attachment_link($id, $size, true, false);
}
これで、投稿欄内に
[gallery link="file"]
などと書けば、指定サイズの画像を開くことができるようになるはずです。
jim912さま
丁寧にご教授くださいましてありがとうございました!
いけそうです。
現在、こちらでカスタマイズしていたギャラリーのコードを書き変えているところです。
少し私には理解するに難しい箇所もありましたが、少しずつ足元確認しながら改修していきたいと思っています。
このたびは誠にありがとうございました。
サイトも拝見しました。
またあちらでも素敵な記事を参考にさせていただきたいと思います。
感謝をこめて。