链接内的图库图像标题<a>

时间:2016-10-07 作者:Hugo

我使用WordPress native gallery–每个图像的输出是:

<dl class="gallery-item">
  <dt class="gallery-icon">
    <a href="(...)"><img src="(...)"></a>
  </dt>
  <dd class="wp-caption-text gallery-caption">
    Caption here
  </dd>
</dl>
这样做的来源是:

foreach ( $attachments as $id => $attachment ) {
        $link = isset($attr[\'link\']) && \'file\' == $attr[\'link\'] ? wp_get_attachment_link($id, $size, false, false) : wp_get_attachment_link($id, $size, true, false);

        $output .= "<{$itemtag} class=\'gallery-item\'>";
        $output .= "
            <{$icontag} class=\'gallery-icon\'>
                $link
            </{$icontag}>";

        if ( $captiontag && trim($attachment->post_excerpt) ) {
            $output .= "
                <{$captiontag} class=\'wp-caption-text gallery-caption\'>
                " . wptexturize($attachment->post_excerpt) . "
                </{$captiontag}>";
        }
        $output .= "</{$itemtag}>";
        if ( $columns > 0 && ++$i % $columns == 0 )
            $output .= \'<br style="clear: both" />\';
    }
我希望输出为:

<dl class="gallery-item">
  <dt class="gallery-icon">
    <a href="(...)">
        <img src="(...)">
        Caption here
    </a>
  </dt>
</dl>
但我无法获取链接或图像,因为链接是用来自“$link”的图像打印的。我该怎么做?

1 个回复
最合适的回答,由SO网友:Jory Hogeveen 整理而成

你应该以不同的方式获得附件。

使用wp_get_attachment_url 对于文件urlhttps://codex.wordpress.org/Function_Reference/wp_get_attachment_url

在你的情况下,这是一个图像,所以我建议wp_get_attachment_image_src 因此,您可以定义图像大小。https://developer.wordpress.org/reference/functions/wp_get_attachment_image_src/

通过这种方式,您可以将自己的“模板”变大以响应图像链接。

要获取图像元数据,只需使用get_post( $id ) 因为图像也是post类型(附件)。

(编辑)示例:

foreach ( $attachments as $id => $attachment ) {
    $large_image = wp_get_attachment_image_src( $id, \'full\' );
    $small_image = wp_get_attachment_image_src( $id, \'medium\' ); // Cange the size to anything

    $output .= "<{$itemtag} class=\'gallery-item\'>";
    $output .= "<{$icontag} class=\'gallery-icon\'>";
    $output .= "<a href=\'{$large_image[0]}\'>";
    $output .= "<img src=\'{$small_image[0]}\' alt=\'{$attachment->post_title}\' />";
    if ( $captiontag && trim($attachment->post_excerpt) ) {
        $output .= "
            <{$captiontag} class=\'wp-caption-text gallery-caption\'>
            " . wptexturize($attachment->post_excerpt) . "
            </{$captiontag}>";
    }
    $output .= "</a>";
    $output .= "</{$icontag}>";
    $output .= "</{$itemtag}>";

    if ( $columns > 0 && ++$i % $columns == 0 )
        $output .= \'<br style="clear: both" />\';
}

相关推荐

已修改Backbone JS中的wp.media.view.Settings.Gallery,但无法编辑

我已经添加到普通的WordPress gallery弹出窗口(在WordPress编辑器中单击“添加媒体”时),以便选择我的自定义库类型(与WordPress gallery主快捷码交互/使用)。我可以选择我的自定义图库类型(我有两种)或“本机”(这是普通的WordPress图库)。目前,在创建库时,一切都按预期工作(如果选择了非本机库类型,则除了我的非本机库使用的几个其他选项外,gallerytype会添加到发送给编辑器的短代码中)。然而,问题是,当想要编辑我已经创建的图库时,我用来选择图库类型(本机或