更改图像链接:WP_GET_ATTACH_LINK

时间:2011-07-27 作者:Aces

有谁能帮我过滤wp\\u get\\u attachment\\u链接,使它的特定位置链接到“中等”或其他大小的图像,而不是完整大小的图像。我在页面模板中有以下内容:

$args = array( \'post_type\' => \'attachment\', \'numberposts\' => -1, \'post_status\' => null, \'post_parent\' => $post->ID ); 
$attachments = get_posts($args);
if ($attachments) {
    foreach ( $attachments as $attachment ) {
    echo wp_get_attachment_link( $attachment->ID , array(150,150) ); 
    }
}
我可以添加一个过滤器来添加类或rel,但我找不到任何方法来更改模板中链接的默认(最初上载的)全尺寸图像。。。。以上内容可以通过colorbox(不是插件)创建灯箱,但如果用户上载非常大的图像(即:4000x4000像素以上),链接加载速度会太慢,我不希望公众能够从灯箱下载打印质量的图像。。

3 个回复
最合适的回答,由SO网友:Aces 整理而成

我想我已经回答了我自己的问题。。。。

当我使用Hybrid的子主题时,我在函数中激活了cleaner gallery扩展。php文件:add_theme_support( \'cleaner-gallery\' );

然后,根据主题here 我创建了自己的筛选器:

add_filter( \'cleaner_gallery_image\', \'my_gallery_image\', 10, 4 );
function my_gallery_image( $image, $id, $attr, $instance ) {

        $post = get_post( $id );
        $image_src = wp_get_attachment_image_src( $post->ID, \'medium\' );
        $image_thumb = wp_get_attachment_image_src( $post->ID, \'Custom Thumb\' );
        $title = esc_attr( $post->post_title );

        $image = "<a href=\'{$image_src[0]}\'><img src=\'{$image_thumb[0]}\' border=\'0\'></a>";

    return $image;
}
还有一些事情是不正确的,比如标题,但它回答了最初的问题,尽管我相信它可以改进,因为我还是按自己的意愿行事。。。。

SO网友:Mario

可以在中指定要链接的大小wp_get_attachment_link 函数,您发布的代码是否正常工作?

尝试:

$args = array( \'post_type\' => \'attachment\', \'numberposts\' => -1, \'post_status\' => null, \'post_parent\' => $post->ID ); 
$attachments = get_posts($args);
if ($attachments) {
    foreach ( $attachments as $attachment ) {
        echo wp_get_attachment_link( $attachment->ID , \'medium\', false ); 
    }
}

SO网友:jjeaton

我不确定您是否可以在PHP中过滤内容中的链接,但您可以使用jQuery替换每个链接的href,根据您提到的rel和class值选择它们。

结束

相关推荐

Resizing all images

我刚刚更改了博客的主题,由于页面宽度很小,它打破了布局。我之前的大多数图片(附在帖子中)的宽度都在600px左右,现在我需要按450px的比例调整它们的大小。如何一次性调整它们的大小?有这个插件吗?P、 美国:编写CSS规则是一个很好的选择,我已经做到了。但我认为调整图像大小也会减少每个页面的下载开销!