Wordpress Web サイトで JQuery 無限スクロール スクリプトを使用しています。スクリプトは正常に動作しますが、すべての投稿が表示されるとスクリプトを停止できません。カスタム投稿タイプで使用し、ワードプレス (MySQL) データベースに直接クエリを作成しています。
また、無限スクロールで使用するカスタム ページネーションを作成し、使用$Totalpages
可能なページ数を確認します。すべての投稿が表示されると、$Totalpages
変数は「0」になり、表示できる投稿がなくなり、無限スクロールが機能しなくなることがわかります。これが私のページ内のJavaScriptです...
<script>
var infinite_scroll = {
loading: {
img: "<?php echo get_template_directory_uri(); ?>/images/ajax-loader.gif",
msgText: "<?php _e( 'Loading the next set of posts...', 'custom' ); ?>",
finishedMsg: "<?php _e( 'All posts loaded.', 'custom' ); ?>"
},
"nextSelector":".previous a",
"navSelector":".post-nav",
"itemSelector":"article",
"contentSelector":".main"
};
jQuery( infinite_scroll.contentSelector ).infinitescroll( infinite_scroll );
</script>
私はJQueryが実行し続けるのを止めようと考えていました
if ($Totalpages == 0) { stop Jquery from executing}
そして、それを実行して書く必要があるときは、これをif ($Totalpages !=0){Execute the Javascript}
どのように実装しますか。
質問への更新
わかりました、上記のコードに合うようにコードを変更して、Cerylが以下に提案したものに問題を更新しました
<?php if ($total_pages == 0) {
echo 'jQuery(window).unbind( infinite_scroll.contentSelector ).infinitescroll( infinite_scroll );';
}?>
<?php if ($total_pages != 0){
echo 'jQuery(window).bind( infinite_scroll.contentSelector ).infinitescroll( infinite_scroll );';
//$(window).unbind('.infscr');
}?>
if ステートメントは正しいように見えますが、自分のページに実装すると機能しません。unbind オプションを 4 に設定すると (これは、所有しているページの総数であり、JQuery のバインドが停止するため、動作することがわかります)。しかし、それを実装すると、そうではありません!
これはなぜですか?