首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wordpress主题获取当前页面和页数

Wordpress主题获取当前页面和页数
EN

Stack Overflow用户
提问于 2016-03-18 22:54:18
回答 1查看 1.8K关注 0票数 0

我在网上到处找这个。我真希望有一个好的答案。

问题

我想要的:

我想要一种从页脚类型文件中获取当前博客页面索引和最大页数的方法。(这样我就可以制作一个有页码的导航栏)

什么应该起作用:

根据wordpress,循环内部应该有$page和$numpages全局变量。

它不是:

在loop.php、循环-single.php或我实际上想要访问的文件(blog-footer.php,主题为blog-footer.php)中,这些都不适用于我。测试了我的has_posts while循环的内外。

使用答案的代码的解决方案

注:,我有答案,我提出这个问题是为了分享它。我认为可能有一个更好的答案或解释为什么$page和$numpages没有工作,所以如果你知道,请张贴你的答案!

如果您感兴趣,我编写了一些代码来创建分页导航栏

这就是我想要的当前/最大页面的用途。,这是的功能版本

你很可能会想要把这些

代码语言:javascript
复制
<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( __( '&laquo;') ); ?></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( __( '&raquo;') ); ?></li>
            <?php
        }
    ?>
</ul>
EN

回答 1

Stack Overflow用户

发布于 2016-03-18 22:54:18

我通过以下函数检索了此信息:

代码语言:javascript
复制
$pages = $wp_query->max_num_pages;
$page = get_query_var('paged', 1);

if ($page === 0)
    $page = 1;

如果你在第一页,传呼似乎会返回0。

注:,我认为可能有一个更好的答案或解释为什么$page和$numpages不能工作,所以如果你知道,请张贴你的答案!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36095575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档