Wordpress 分页在插件管理中不起作用

Wordpress Pagination not working in Plugin Admin

在过去三天的大部分时间里,我一直在尝试各种方法,并且在此处浏览了无数关于 Whosebug 和 Wordpress 支持的回复。是否可以在我的插件中使用分页来列出管理员的帖子?

我的插件显示管理员的帖子,这样他们就可以查看每个页面的某些详细信息和 add/edit 特定选项。我意识到这可以在每个单独的页面上使用元数据来完成,但我需要以这种方式完成:加载,比方说,一次 25 个帖子,并允许管理员添加每个帖子的次要细节。

我已经尝试了每一种变体(我说每一种,但我们只是说它是我可以在 Google 的前 20 页左右找到的各种搜索短语的每一种变体)使用 previous_posts_linkspaginate_links()、等等;我已经尝试使用自定义 wp_query() 函数,实例化一个新的 wp_query 并在完成后恢复它(不推荐)并且完全避免使用 query_posts()。我已经尝试添加 pre_get_posts() 函数 - 但在这一点上,虽然 get_posts() 可能比 运行 快,但新的 wp_query() 显然更难以使用它的结果进行分页.

我试过的代码包括这个想法的各种变体:

<?php
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;             
    $my_query = new WP_Query( 
      array(
      'number' => -1,
      'posts_per_page' => '25',
      'paged' => $paged
    ) );

  while ($my_query->have_posts()) : $my_query->the_post(); 
     echo "<div style='border:2px groove black; margin-bottom:5px;'><h3 class='postlist'>";
     the_title(); 
     echo "</h3></div>";
  endwhile; ?>

<nav>
    <?php previous_posts_link('&laquo; Newer', $my_query->max_num_pages) ?>
    <?php next_posts_link('Older &raquo;', $my_query->max_num_pages) ?>
</nav>

(我已经删除了保存内容的选项,以便于阅读)。注意这一点:$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 我也尝试过将其作为 'page' 而不是 'paged' 并且没有任何效果。

此函数显示我需要的内容:我要加载的帖子数量,它似乎正确地获得了分页,并且分页的 URL 正确,但是点击任何分页 link 生成什么都不做.

我试过 Chris Coyier 关于 $temp = wp_query... etc 的修复,然后恢复它,但这也不起作用。

有什么想法可以让它发挥作用吗?非常感谢您!我每天都在扯头发好几个小时,但几乎一无所获。

编辑:这个例子(下面)直接从 Codex 中提取,生成编号的 links,但是 虽然它们有正确的 path/URL 用于分页 实际上不会进入第 2 页、第 3 页等。

$big = 999999999; // need an unlikely integer
echo paginate_links( array(
    'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
    'format' => '?paged=%#%',
    'current' => max( 1, get_query_var('paged') ),
    'total' => $my_query->max_num_pages
) );

它给了我 1、2、3 下一个的 links - 但即使认为 url 附加 &page=2,links 也不起作用。

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

那可能是你的问题 - 你可以简单地尝试...

$paged = isset($_GET['paged']) ? $_GET['paged'] : 1; 

您的分页链接需要引用 paged then 而不是 page。