WP_QUERY分页在管理区域中不起作用

时间:2015-01-20 作者:Christine Cooper

我已经创建了一个自定义插件页面。在此页面上,我使用wp_query(). 它工作得很好。我想添加分页,但它不起作用,即使我使用中提供的代码codex:

<?php
// set the "paged" parameter 
$paged = ( get_query_var( \'paged\' ) ) ? get_query_var( \'paged\' ) : 1;

// the query
$the_query = new WP_Query( \'posts_per_page=2&paged=\' . $paged ); 

if ( $the_query->have_posts() ) :

// the loop
while ( $the_query->have_posts() ) : $the_query->the_post(); 

the_title(); 
endwhile;

// next_posts_link() usage with max_num_pages
next_posts_link( \'Older Entries\', $the_query->max_num_pages );
previous_posts_link( \'Newer Entries\' );

// clean up after the query and pagination
wp_reset_postdata(); 

else:  
echo \'Sorry, no posts matched your criteria.\';
endif; ?>
单击分页链接时,它会加载具有相同帖子的新页面。为什么在wp-admin area?

1 个回复
最合适的回答,由SO网友:Christine Cooper 整理而成

米洛指出$wp_query 对象,以便$paged 通过:

$paged = ( $_GET[\'paged\'] ) ? $_GET[\'paged\'] : 1;
现在我们有了$paged, 我们可以编写自己的分页代码。我将以最简单的形式演示如何。

首先,让我们获得最大分页页面数:

$max_pages = $the_query->max_num_pages;
然后计算下一页:

$nextpage = $paged + 1;
最后,让我们创建分页链接。我们执行基本的if语句检查if$max_pages 大于$paged:

if ($max_pages > $paged) {
    echo \'<a href="admin.php?page=plugin-page.php&paged=\'. $nextpage .\'">Load More Topics</a>\';
}
就这么简单。

更新以启用上一页,您只需添加:

$prevpage = max( ($paged - 1), 0 ); //max() will discard any negative value
if ($prevpage !== 0) {
   echo \'<a href="admin.php?page=plugin-page.php&paged=\'. $prevpage .\'">Previous page</a>\';
}

结束

相关推荐

Wp-admin不会重定向到wp-login.php

由于某种原因,我的插件导致/wp-admin/ 不重定向到wp-login.php 这是应该的。我将其缩小到以下两行代码:foreach( glob($this->path[\'modules_dir\'] . \'*/_*.php\') as $class_path ) require_once( $class_path ); 我不确定是不是glob() 功能或什么的,但在本地这不是问题,但一旦在托管上直播,这就是问题。主机正在使用PHP Version 5.4.20 它