我无法将以前的帖子链接显示出来

时间:2013-07-11 12:51:20

标签: php wordpress

首先,我一直在谷歌,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 &laquo;'); ?></div>
            <div style="float:right;"><?php next_posts_link('&raquo; 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

1 个答案:

答案 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) . '">&laquo; 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 &raquo;</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); ?>