图库快捷代码-更改链接文件图像大小?(不使用默认全尺寸图像)

时间:2012-08-16 作者:Joshc

我将此用于我的图库-

<?php echo do_shortcode(\'[gallery size="gallery-thumb" link="file"]\'); ?>
我正在使用jquery fancyapps fancybox. 但我的图库中的一些全尺寸图片非常大,需要很长时间才能加载。。。

相反,我想在短代码中的链接文件使用我下面的自定义图像大小。。。

add_image_size( \'fancyapps-image\', 1024, 1024 );
有谁能帮助我们使用其他插件吗?




我在我的帖子/页面正文上使用了类似的脚本,其中图像是手动插入和对齐的,所以类似的东西肯定可以工作?

这个脚本组合函数ajax调用基本上扫描了我帖子中的所有图像,并将链接url更改为“fancyapps图像”大小。。。

script

var raw_class, image_id = new Array();
$(\'.entry a img\').each(function(i){
    var img_class = $(this).attr(\'class\');
    if(img_class && img_class != undefined){ 
        raw_class = $(this).attr(\'class\').split(" ");
        for(j=0;j<=raw_class.length-1;j++){
            if(raw_class[j].match(/wp-image-/))
                image_id[i]= raw_class[j].slice(9);
        }
    }
});

var image_ids = image_id.toString();
var data = { type: \'get_data\', action: \'wp_get_large_image_url\', data: image_ids }

$.post( wp_ajax, data, function(message){
    if(message){
        var raw_data = message.split(\',\');
        for(i=0;i<=raw_data.length-1;i++){
            var image_data = raw_data[i].split(\'%-\');
            $(\'.wp-image-\'+image_data[1]).parent(\'a\').attr(\'href\', image_data[0]);
        }
    }
});

admin-ajax.php call

<?php echo "var wp_ajax = \'" . admin_url(\'admin-ajax.php\') . "\';" ?>

functions.php

function wp_large_image_data(){
    unset( $_POST[\'action\'] );
    if($_POST[\'type\'] == \'get_data\'){
        $data = $_POST[\'data\'];
        $image_ids = explode( \',\',  $data );
        $image_large_url = array();
        foreach($image_ids as $image_id){
            if($image_id){
                $attachment_data = wp_get_attachment_image_src( $image_id, \'fancyapps-image\' );
                $image_large_url[] = $attachment_data[0].\'%-\'.$image_id;
            }
        }
        $image_data = implode( "," , $image_large_url);
        echo $image_data;       
    }
    die;
}
add_action(\'wp_ajax_wp_get_large_image_url\', \'wp_large_image_data\');
add_action(\'wp_ajax_nopriv_wp_get_large_image_url\', \'wp_large_image_data\');

任何想法都很好,谢谢。

1 个回复
SO网友:Joshc

感谢@Hai

将其添加到您的函数中。无论WordPress在哪里显示附加图像的链接,它都将使用“fancyapps图像”版本的图像。希望有帮助。

function oikos_get_attachment_link_filter( $content, $post_id, $size, $permalink ) {
    // Only do this if we\'re getting the file URL
        if (! $permalink) {
            // This returns an array of (url, width, height)
            $image = wp_get_attachment_image_src( $post_id, \'fancyapps-image\' );
            $new_content = preg_replace(\'/href=\\\'(.*?)\\\'/\', \'href=\\\'\' . $image[0] . \'\\\'\', $content );
            return $new_content;
        }
    }
    add_filter(\'wp_get_attachment_link\', \'oikos_get_attachment_link_filter\', 10, 4);
代码来自http://oikos.org.uk/2011/09/tech-notes-using-resized-images-in-wordpress-galleries-and-lightboxes/

结束

相关推荐

Gallery Pagination by Row

我在以下位置创建了一个图片库:http://ellenandjosh.com/?page_id=5. 目前,我有一个循环,在一定数量的图像之后显示分页:http://pastebin.com/N6nRRUei.通常情况下,这很好。。。但通常我没有不同宽度的图像。WordPress按高度裁剪图像,宽度可变。我想做的是在三行图像之后,然后添加分页按钮。。。而不是在一定数量的图像后显示分页按钮。。。这可能吗?第1页还可以,虽然底部行中可能会有更多图像-第2页只有两行,第3页第三行只有一个图像-尽管有更多图像。。