WordPress:预加载下一张帖子图片

时间:2011-03-24 作者:Infocentre

正如标题所说,我想在我的函数中加入一些不错的编码,这些函数可以预加载附加到下一篇文章的任何图像。

这意味着当我的用户浏览时,他们的页面将被加载,但实际上它将加载下一个页面,所以当你点击时,图像应该已经在那里等待了!

可以将其视为图像的“缓冲”。

需要注意的几件事:我使用post\\u缩略图功能,并通过函数设置了不同的大小。php。我还有一个插件,可以为每篇文章提供多幅特色图片。

我在stackoverflow上提出了这个问题(他在这里指了我),并将此代码放入循环中;

    <?php
$next_post = get_adjacent_post(false, \'\', false );// set last param to true if you want post that is chronologically previous
$args = array(\'post_type\' => \'attachment\', \'numberposts\' => -1, \'post_parent\' => $next_post->ID);
$attachments = get_posts($args);
?>
<script type="text/javascript">
    $(document).ready(function(){
        var images = \'\';
        <?php foreach($attachments as $attachment):
            $mime = $attachemnt->post_mime_type;
            if($mime == \'image/jpeg\' || $mime == \'image/gif\' || $mime == \'image/png\'): 
        ?>
        images += \'<img src="<?php $attachment->guid ?>" style="display:none" />\';
        <? endif; endforeach; ?>
        if(images != \'\'){
            $(body).append(images);
        }
    });
</script>
虽然to看起来有可能成为赢家,但它似乎还没有发挥作用。在“我的页面源”中,它返回以下内容:

<script type="text/javascript">
    jQuery(document).ready(function(){
        var images = \'\';
                if(images != \'\'){
            jQuery(body).append(images);
        }
    });
</script>
这可能是我做错了什么,因为我是一个长期的复制和粘贴!

有人有什么想法吗?

谢谢大家!

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

这是cam的另一段代码-非常感谢@Ivan Ivanic

<?php
    $next_post = get_adjacent_post(false, \'\', false );// set last param to true if you want post that is chronologically previous
    //for debug
    if(!empty($next_post)){
       echo \'Next post title is: \'.$next_post->post_title;
    } else {
        echo \'global $post is not set or no corresponding post exists\';
    }
    $args = array(\'post_type\' => \'attachment\', \'numberposts\' => -1, \'post_parent\' => $next_post->ID);
    $attachments = get_posts($args);
    // print attachments for debug
    echo \'<pre>\';print_r($attachments);echo \'</pre>\'; ?> <script type="text/javascript">
    $(document).ready(function(){
        var images = \'\';
        <?php foreach($attachments as $attachment):
            $mime = $attachment->post_mime_type;
            if($mime == \'image/jpeg\' || $mime == \'image/gif\' || $mime == \'image/png\'): 
        ?>
        images += \'<img src="<?php echo $attachment->guid ?>" style="display:none" />\';
        <? endif; endforeach; ?>
        if(images != \'\'){
            $(\'body\').append(images);
        }
    }); </script>

SO网友:Bainternet

由于您正在使用后期缩略图,请将代码更改为:

    <?php
$next_post = get_adjacent_post(false, \'\', false );// set last param to true if you want post that is chronologically previous
$thumbnail = \'\';
?>
<script type="text/javascript">
    $(document).ready(function(){
        var images = \'\';
        <?php $thumbnail = wp_get_attachment_image_src ( get_post_thumbnail_id ( $next_post->ID ), "size"); 
        if ($thumbnail != false && $thumbnail != \'\'){
            ?>
            images += \'<img src="<?php echo $thumbnail[0]; ?>" style="display:none" />\';
            <?php
        }
        ?>
        if(images != \'\'){
            $(body).append(images);
        }
    });
</script>

结束

相关推荐

升级到WordPress 3.1时出现奇怪的jQuery问题

安装Wordpress 3.1后,jquery插件selectbox 我再也不用百分之百地工作了我在wordpress后端使用此插件替换<select></select> 我可以在自定义html代码上应用css,但在wordpress 3.1中<select> 不要100%被替换,<option> 例如,替换的代码中缺少<select> <option (some attributes...)>text</optio