【问题标题】:WordPress pagination not working on home page ( Custom templete )WordPress分页在主页上不起作用(自定义模板)
【发布时间】:2014-01-25 18:14:49
【问题描述】:

我已经用谷歌搜索了这个问题,我担心不仅我有很多编码员面临这个问题。我在那里应用修复但结果相同。请检查我的分页代码好吗?我有一个静态首页,分页将我重定向到主页 (/)。如果我在 url /page/2 之后手动添加这个也将我重定向到主页。我知道这是一个幼稚的问题,但我无法弄清楚问题所在。

这是函数。

 function pagination($pages = '', $range = 2)
 {  
     $showitems = ($range * 2)+1;  

     global $paged;
     if(empty($paged)) $paged = 1;

     if($pages == '')
     {
         global $wp_query;
         $pages = $wp_query->max_num_pages;
         if(!$pages)
         {
             $pages = 1;
         }
     }   

     if(1 != $pages)
     {
         echo "<ul class='pagenavi'>";
         if($paged > 2 && $paged > $range+1 && $showitems < $pages) echo "<li><a href='".get_pagenum_link(1)."'>&laquo;</a></li>";
         if($paged > 1 && $showitems < $pages) echo "<li><a href='".get_pagenum_link($paged - 1)."'>&lsaquo;</a></li>";

         for ($i=1; $i <= $pages; $i++)
         {
             if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems ))
             {
                 echo ($paged == $i)? "<li><a href='".get_pagenum_link($i)."' class='current' >".$i."</a></li>":"<li><a href='".get_pagenum_link($i)."' class='inactive' >".$i."</a></li>";
             }
         }

         if ($paged < $pages && $showitems < $pages) echo "<li><a href='".get_pagenum_link($paged + 1)."'>&rsaquo;</a></li>";  
         if ($paged < $pages-1 &&  $paged+$range-1 < $pages && $showitems < $pages) echo "<li><a href='".get_pagenum_link($pages)."'>&raquo;</a></li>";
         echo "</ul>\n";
     }
}

用于生成分页的代码

<?php query_posts( array( 'post_type' => 'post', 'paged' => $paged, 'cat'=> $bcatid, 'posts_per_page' => 9 ) );
?>
    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
post content
<?php endwhile; endif; ?>
<?php pagination(); ?>

提前感谢您的宝贵时间。

【问题讨论】:

    标签: wordpress pagination


    【解决方案1】:

    在静态首页(页面模板)上获取当前页码的正确方法必须使用'page'查询变量:

    $paged = (get_query_var('page')) ? get_query_var('page') : 1;

    更多信息在这里:http://codex.wordpress.org/Function_Reference/get_query_var

    【讨论】:

    • 我添加了您的代码而不是 if(empty($paged)) $paged = 1; 我仍然重定向到主页。有什么解决办法吗?谢谢。
    • 您是否尝试过再次更新永久链接?另外您安装了哪些插件,是否有任何会干扰网站功能的插件?此外,您是否已在模板文件中或通过 Wordpress 设置 -> 阅读设置 -> 首页显示 -> 静态页面(选择下方)将静态首页设置为自定义 home.php 文件?
    • 我有很多 SEO、Breakcrumbs 等插件。是的,我有自定义模板名称 template_home_blog3.php 我设置为静态主页。还有像 %postname%.html 这样的固定链接。我已经更新了永久链接,更改为另一个等。但是没有用。我也安装了 wp 超级缓存插件。我清除了缓存。我做了几乎所有事情,无法使其正常工作。感谢 Eek 的评论。
    • 尝试将template_home_blog3.php 的名称更改为home.php,这实际上可能会奏效:)
    • 我还有一个名为 home.php 的页面。谢谢。
    猜你喜欢
    • 2015-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多