我在网上到处找这个。我真希望有一个好的答案。
问题
我想要的:
我想要一种从页脚类型文件中获取当前博客页面索引和最大页数的方法。(这样我就可以制作一个有页码的导航栏)
什么应该起作用:
根据wordpress,循环内部应该有$page和$numpages全局变量。
它不是:
在loop.php、循环-single.php或我实际上想要访问的文件(blog-footer.php,主题为blog-footer.php)中,这些都不适用于我。测试了我的has_posts while循环的内外。
使用答案的代码的解决方案
注:,我有答案,我提出这个问题是为了分享它。我认为可能有一个更好的答案或解释为什么$page和$numpages没有工作,所以如果你知道,请张贴你的答案!
如果您感兴趣,我编写了一些代码来创建分页导航栏
这就是我想要的当前/最大页面的用途。,这是的功能版本
你很可能会想要把这些
<ul class="pagination">
<?php
$DOTS = -1;
$CURRENT = -2;
$pages = $wp_query->max_num_pages;
$page = get_query_var('paged', 1);
if ($page === 0)
$page = 1;
$links = [];
if ($page !== 1) {
?>
<li><?php previous_posts_link( __( '«') ); ?></li>
<?php
}
if ($page > 3) {
$links[] = 1;
if ($page > 4)
$links[] = $DOTS;
}
for ($i = $page-2; $i <= ($page + 2); $i++) {
if ($i <= 0)
continue;
else if ($i > $pages)
break;
else if ($page === $i)
$links[] = $CURRENT;
else
$links[] = $i;
}
if ($pages-2 > $page) {
if ($pages-3 > $page)
$links[] = $DOTS;
$links[] = $pages;
}
foreach($links as $link) {
if ($link === $DOTS)
echo '<li><a>...</a></li>';
else if ($link === $CURRENT)
echo "<li><a class=\"currently-open highlight\">$page</a></li>";
else
echo "<li><a href=\"/blog/page/$link\">$link</a><li>";
}
if ($page != $pages) {
?>
<li><?php next_posts_link( __( '»') ); ?></li>
<?php
}
?>
</ul>发布于 2016-03-18 22:54:18
我通过以下函数检索了此信息:
$pages = $wp_query->max_num_pages;
$page = get_query_var('paged', 1);
if ($page === 0)
$page = 1;如果你在第一页,传呼似乎会返回0。
注:,我认为可能有一个更好的答案或解释为什么$page和$numpages不能工作,所以如果你知道,请张贴你的答案!
https://stackoverflow.com/questions/36095575
复制相似问题