首先,我一直在谷歌,StackExchange和Codex,但仍然无法解决我的问题。这可能很简单;我不确定。我有以下功能列出自定义帖子。该页面有多个查询,但只有一个(这一个)使用分页。它位于首页 - 设置为静态。
这是功能:
function wight_listings()
{
global $wp_query;
global $page;
$backup = $wp_query;
$wp_query = NULL;
$cur_page = $page; //get_query_var('page') ? get_query_var('page') : 1;
$args = array(
'post_type' => array('wight_listing'),
'posts_per_page' => 7,
'paged'=>$cur_page
);
$wp_query = new WP_Query($args);
?>
<?php if ( $wp_query->have_posts() ) : ?>
<?php while ( $wp_query->have_posts() ) : $wp_query->the_post(); ?>
.
.
.
<?php endwhile; ?>
<div id="nav-posts" style="margin-top: .5em;">
<div style="float:left;"><?php previous_posts_link('Previous Listings «'); ?></div>
<div style="float:right;"><?php next_posts_link('» Next Listings'); ?></div>
<div class="clear"></div>
</div>
<?php else: ?>
<p>Oh no! There's nothing to show. :(</p>
<?php endif; ?>
<?php
$wp_query = NULL;
$wp_query = $backup;
}
“下一个商家信息”链接只显示链接到第2页,无论上面是什么页面,“上一个商家信息”链接都不会显示。
我做错了什么?
WP:3.5.2
答案 0 :(得分:1)
我找到了解决方案。我查看了/wp-includes/link-template.php,发现这两个函数对我的mysery负责。我将它们复制到我的主题并修改了一点,一切都很有效。
function wight_get_previous_posts_page_link($cur_page)
{
if ( $cur_page > 1 )
{
$nextpage = intval($cur_page) - 1;
if ( $nextpage < 1 )
$nextpage = 1;
return '<a href="' . get_pagenum_link($nextpage) . '">« Previous Listings</a>';
}
}
function wight_get_next_posts_page_link($cur_page, $max_page)
{
$paged = $cur_page;
if ( !$paged )
$paged = 1;
$nextpage = intval($paged) + 1;
if ( $max_page >= $nextpage )
return '<a href="' . get_pagenum_link($nextpage) . '">Next Listings »</a>';
}
使用那些代替previous_posts_link和next_posts_link。
<?php echo wight_get_previous_posts_page_link($cur_page); ?>
<?php echo wight_get_next_posts_page_link($cur_page, $query->max_num_pages); ?>