我有一个自定义模板,我想显示分页的博客文章。这是我的文件的开头:
$wp_query = new WP_Query($args);
if($wp_query->have_posts()){
while($wp_query->have_posts()){ $wp_query->the_post();
//something...
<?php next_posts_link(\'Older Entries\'); ?>
<?php previous_posts_link(\'Newer Entries\'); ?>
它工作得很好-它会在应该的时候显示旧的和新的链接。在第一个页面上,它将只显示到旧实体的链接。在第二页上显示新条目和旧条目等。
但我不想覆盖当前$wp_query
... 我想用$wp_query2
对于此循环。如果我这样做,链接根本不会出现。
据此:http://codex.wordpress.org/Function_Reference/next_posts_link 它们打印指向当前查询中上一组/下一组帖子的链接。我想$wp_query2
不是我的“当前查询”,而是$wp_query
总是这样。我能改变一下吗?
更新:添加&paged=2
手动链接可使其正确转到下一组帖子(下一页)和第二、第三页等previous_posts_link()
即使我使用$wp_query2
. 所以,我只是失踪了next_posts_link()
每个页面上的功能。
最合适的回答,由SO网友:s_ha_dum 整理而成
next_posts_link
和previous_posts_link
使用全局$wp_query
.
function get_next_posts_link( $label = null, $max_page = 0 ) {
global $paged, $wp_query;
http://core.trac.wordpress.org/browser/tags/3.5/wp-includes/link-template.php#L1523
这意味着你需要这样做才能让它们正常工作。
$orig_query = $wp_query;
$wp_query = new WP_Query($args);
// the rest of your code
$wp_query = $orig_query;
如果你完成了
$wp_query
对于该页面加载,没有理由保留它。复制这些核心函数、修改它们以接受查询参数并创建自己的分页函数应该非常容易。