【问题标题】:wordpress pagination, links appear but go nowhere when clickedwordpress分页,链接出现但点击时无处可去
【发布时间】:2012-07-26 11:00:37
【问题描述】:

我的问题是,虽然链接确实出现在我放置调用分页的函数的页面底部。

点击后,页面什么也不做。

我在网上发现了无数类似的问题(很多都在 SO 上),但是当我尝试实施时 那些帖子的决议,同样的事情也会发生。我尝试的所有不同的分页方法、循环、功能......甚至插件都可以工作,因为它们出现在页面上,但是当单击时,URL 会相应更改,但页面内容不会更改.

举个例子,我正在使用我在 SO 上其他人的问题的“已接受答案”中找到的这个循环

function pagination($pages = '', $range = 3){ 
    $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 "<div class='pagination'><span>Page ".$paged." of ".$pages."</span>";
     if($paged > 2 && $paged > $range+1 && $showitems < $pages) {
         echo "<a href='".get_pagenum_link(1)."'>&laquo; First</a>";
     }
     if($paged > 1 && $showitems < $pages) {
         echo "<a href='".get_pagenum_link($paged - 1)."'>&lsaquo; Previous</a>";
     }

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

     }

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

并将函数调用应用到我的帖子循环底部 endwhile//if 下,这样它就不会在页面上显示的每个帖子中重复,并且再次显示(就像所有其他帖子一样) 但是页面本身并没有做任何事情。

我的问题是,对于这种类型的问题,即显示链接以及我尝试过的所有类型的不同版本,确实会出现在页面上,但是当点击时,无处可去,什么我可能会失踪吗?

我是否需要在某处启用分页,就像启用小部件的方式一样,或者..或者我的页面是否必须有任何类型的钩子或.....比如插入“”等...

我很茫然。

【问题讨论】:

  • 我以前也遇到过这个问题。您是否尝试让分页适用于自定义帖子类型?
  • 是的,先生。 @ Coletrain 哈哈,顺便说一句,好名字哈哈。但是,是的,我正在使用自定义帖子类型,在尝试了很多之后,我想知道我是否在某处遗漏了什么

标签: wordpress pagination


【解决方案1】:

这应该可以解决您的问题。此外,我正在使用kriesi 分页功能,但您可以使用默认的 wordpress 旧功能和新功能切换 if (function_exists("pagination"))。

// Backup the original property value
$backup_page_total = $wp_query->max_num_pages;
// Copy the custom query property to the $wp_query object
$wp_query->max_num_pages = $loop->max_num_pages;
?>
<!-- now show the paging links -->
<?php if (function_exists("pagination")) {pagination($additional_loop->max_num_pages);} ?>
<?php
// Finally restore the $wp_query property to it's original value
$wp_query->max_num_pages = $backup_page_total;
?>

【讨论】:

  • 嘿@coletrain,我没有看到一个函数,所以这是否意味着我将它放在我想要分页发生的页面上,或者我是否将它复制/粘贴到functions.php?我的意思是我看到“如果函数存在,我假设我把它放在我的实际页面上的 post 循环下,但它是全部到那里,还是只有 if 行和 functions.php 中的所有其他内容?
  • 我的意思是删除 &lt;?php if (function_exists("pagination")){pagination($additional_loop-&gt;max_num_pages);} ?&gt; 如果您不使用该功能,如果您决定使用它,您可以按照上面链接的教程进行操作,如果不只是用更新和更旧的默认 wordpress 替换该代码代码。将上述代码放在您的自定义帖子类型存档页面中。
  • 嘿 Coletrain,我尝试了该教程两次,同样的事情发生了,我尝试了其他的,我什至进入了 21 主题,撕掉了他们的分页功能,将它添加到我的,并从我的页面和同样的事情发生了。举个例子,这里是我在somdowprod.net/4testing/campanita/?page_id=18 上工作的网站,我已将每页的帖子数设置为 3,以便它构建底部页面链接,你会看到最后(第 3 个帖子)下方的数字,但是当您单击它们,它们只会跳到页面顶部,但内容相同。帖子不要更新
  • @somdow 另一个提示是更新您的永久链接结构。我注意到您没有使用/%postname%/。另一件事是确保您已将自定义帖子类型的 rewrite 设置为 true 和 has_archive。让我知道这是否有帮助
  • @somedow 好的,我想我可能知道问题所在。在循环之前的 archive-books.php 或类似文件中,确保您使用分页选项。例如$args = array( 'post_type' =&gt; 'books', 'posts_per_page' =&gt; 2, 'paged' =&gt; $paged ); 然后在之后开始你的循环
猜你喜欢
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-25
相关资源
最近更新 更多