在为我正在处理的网站构建自定义分页时,我遇到了类似的问题。
我在functions.php 中创建的全局变量被定义并设置为0。我可以使用上面概述的方法@Karsten 在我的javascript 中输出这个值没有问题。问题在于更新我最初在 PHP 文件中设置为 0 的全局变量。
这是我的解决方法(hacky?我知道!)但是在紧迫的期限内挣扎了一个小时后,以下工作:
在 archive-episodes.php 中:
<script>
// We define the variable and update it in a php
// function defined in functions.php
var totalPageCount;
</script>
内部functions.php
<?php
$totalPageCount = WP_Query->max_num_pages; // In my testing scenario this number is 8.
echo '<script>totalPageCount = $totalPageCount;</script>';
?>
为了简单起见,我通过警报在$ajax.success回调中输出totalPageCount变量。
$.ajax({
url: ajaxurl,
type: 'POST',
data: {"action": "infinite_scroll", "page_no": pageNumber, "posts_per_page": numResults},
beforeSend: function() {
$(".ajaxLoading").show();
},
success: function(data) {
//alert("DONE LOADING EPISODES");
$(".ajaxLoading").hide();
var $container = $("#episode-container");
if(firstRun) {
$container.prepend(data);
initMasonry($container);
ieMasonryFix();
initSearch();
} else {
var $newItems = $(data);
$container.append( $newItems ).isotope( 'appended', $newItems );
}
firstRun = false;
addHoverState();
smartResize();
alert(totalEpiPageCount); // THIS OUTPUTS THE CORRECT PAGE TOTAL
}
不管怎样,我希望这能帮助别人!如果有人有“不那么黑客”的版本或最佳实践示例,我会全力以赴。