Wordpress:预加载下一个帖子图片

时间:2011-03-23 17:14:09

标签: jquery wordpress preload

正如标题所说,我希望在我的函数中加入一些编码,预先加载附加到下一篇文章的任何图像。

这意味着,当我的用户正在浏览时,他们的页面会加载,但它实际上会加载下一页,因此当您点击时,图片应该已经存在并等待!

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

有人对此有任何想法吗?

干杯!

1 个答案:

答案 0 :(得分:1)

因此,您的访问者位于由single.php生成的页面上。你需要把你的js放在那里。你需要在循环中完成它,因为这只是你要使用post id的地方。 只有一个问题,你的下一篇文章是什么?在当前或之后发布的帖子?如果访客向后退,您需要从当前发布的帖子中加载图片。 无论如何你可以做这样的事情(假设你已经加载了jquery)。

注意:你必须把它放在循环中

removed old code

get_adjacent_post()的文档为here,您可以将帖子设置为同一类别,并且可以排除类别。

更新:我做了一些有趣的拼写错误,所以这里是好的代码,在我安装的wp上测试,适用于自定义帖子类型:

<?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>