web-dev-qa-db-ja.com

Gallery Shortcode:link属性を使って特定の画像サイズにリンクする

[gallery link="file"]を使用すると、元の画像ファイルのソースが呼び出されます。

以下のように、特定のサイズにリンクするショートコードフィルタを作成することが可能です。

[gallery link="medium"]

または

[gallery link="custom-size-name"]

(functions.phpのadd_image_size()で作成された追加の画像サイズを参照してください。)

3
Marc P

私はここで動作するものが非常に近いものを見つけました:

http://oikos.org.uk/2011/09/tech-notes-using-resized-images-in-wordpress-galleries-and-lightboxes/

3
Marc P

組み込みのshortcodeタグの登録を解除し、関数をコピーし、wp_get_attachment_linkでフィルタをかけることができるいくつかの修正を加えてそれを再登録する手間が省けます。問題は、これがその関数が使用されるあらゆる場所に影響を与えることです。

それはそんなに悪いことではないかもしれないと言って:

add_filter( 'wp_get_attachment_link', 'my_attachment_link', 10, 6 );
function my_attachment_link( $link, $id, $size, $permalink, $icon, $text ) {
    if ( !is_admin() ) {
        // if we're linking to the file itself
        if ( ! $permalink )
            $link = preg_replace("/href=\'([^\']+)\'/", "href='" . wp_get_attachment_image_src( $id, 'my-custom-size', false ) . "'", $link );
    }
    return $link;
}

これは、フロントエンド上の元のサイズのファイルに生成されたリンクを、wp_get_attachment_image_src()の2番目の引数で指定したサイズへのリンクで上書きします。

0
sanchothefat