タイトルが示すように、次の投稿に添付される画像をプリロードする関数に、ちょっとしたコーディングを加えたいと思います。
これは、ユーザーがブラウジングしている間、ページが読み込まれることを意味しますが、実際には次のページが読み込まれるため、クリックスルーすると、画像が既にそこにあり、待機しているはずです!
画像の「バッファリング」と考えてください。
誰でもこれについて何か考えがありますか?
乾杯!
したがって、訪問者は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>