[英]Wordpress theme get the current page and number of Pages
我在整个地方在线搜索了此内容。 我真的希望有一个好的答案。
我想要的是:
我想要一种从页脚类型文件中获取当前博客页面索引和最大页面数的方法。 (所以我可以用页码制作一个导航栏)
什么应该工作:
根据wordpress ,在循环内应该有$ page和$ numpages全局变量。
不是:
这些在loop.php,loop-single.php或我实际上想要访问的文件(主题中的blog-footer.php)中对我不起作用。 在has_posts while循环的内部和外部进行了测试。
注意:我有答案,我正在回答这个问题。 我认为对于$ page和$ numpages为什么不起作用,可能有更好的答案或解释,因此,如果您知道,请发布答案!
如果您有兴趣,我写了一些代码来创建页面导航栏
这就是我想要当前/最大页面的目的。 这是功能版本
您可能需要设置ul元素的样式
<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>
我通过以下功能检索了此信息:
$pages = $wp_query->max_num_pages;
$page = get_query_var('paged', 1);
if ($page === 0)
$page = 1;
如果您在页面上,则一页似乎返回0。
注意:对于$ page和$ numpages为什么不起作用,我认为可能会有更好的答案或解释,因此,如果您知道请发布答案!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.