2014-01-07 124 views
1

我已经使用了这个问题,我担心的不仅仅是我有很多编码人员面临这个问题。我在那里修正了相同的结果。您可以查看我的分页代码吗?我有一个静态页面,其中分页将我重定向到主页(/)。如果我手动添加网址/page/2后,这一个也会将我重定向到主页。我知道这是幼稚的问题,但我无法弄清楚这个问题。WordPress分页不能在主页上工作(自定义模板)

这是函数。

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(); ?> 

感谢您的宝贵时间。

回答

0

正确的方式来获得一个静态正面页面(模板)当前的页码数,你必须使用“页”查询变量:

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

此处了解详情:http://codex.wordpress.org/Function_Reference/get_query_var

+0

我添加了你的代码而不是'if(empty($ paged))$ paged = 1;'我仍然重定向到主页。任何解决方案谢谢。 –

+0

你有没有尝试再次更新固定链接?你还安装了哪些插件,是否有任何可能干扰网站功能的插件?另外,你是否已经将静态页面设置为模板文件中的自定义'home.php'文件,或者是通过Wordpress设置 - >阅读设置 - >首页显示 - >静态页面(下面选择)? – Eek

+0

我有很多SEO,Breakcrumbs等插件是的我有自定义模板名称'template_home_blog3.php'我设置为静态主页。和%postname%.html一样的固定链接。我已更新固定链接,更改为另一个等,但没有奏效。我也安装了wp超级缓存插件。我清除了缓存。我做了几乎所有的事情,都无法使它工作。感谢Eek的评论。 –

相关问题