0

タイトルが示すように、次の投稿に添付される画像をプリロードする関数に、ちょっとしたコーディングを加えたいと思います。

これは、ユーザーがブラウジングしている間、ページが読み込まれることを意味しますが、実際には次のページが読み込まれるため、クリックスルーすると、画像が既にそこにあり、待機しているはずです!

画像の「バッファリング」と考えてください。

誰でもこれについて何か考えがありますか?

乾杯!

4

1 に答える 1

1

したがって、訪問者はsingle.phpによって生成されたページにいます。あなたはそこにあなたのjsを置く必要があります。ループ内で行う必要があります。これは、投稿IDを使用できる場所にすぎないためです。問題は1つだけです。次の投稿は何ですか?現在の前または現在の後に投稿された投稿?訪問者が後戻りする場合は、現在より前に投稿された投稿から画像を読み込む必要があります。とにかく、あなたはこのようなことをすることができます(あなたがすでにjqueryをロードしていると仮定して)。

注:これをループに入れる必要があります

removed old code

get_adjacent_post()のドキュメントはこちらです。投稿を同じカテゴリに設定したり、カテゴリを除外したりできます。

更新:私はいくつかの面白いタイプミスをしたので、ここに良いコードがあり、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>
于 2011-03-23T19:27:49.443 に答える