getPost()方法和分页

时间:2011-11-19 11:29:08

标签: wordpress wordpress-plugin

我正在为我的wordpress启用的网站创建一个相关的帖子文章功能。新的php和wordpress面临一些问题。 虽然我可以使用wordpress构建功能来显示作者的相关帖子,但由于网站主持的作者文章没有我们的任何个人资料,并且有很多这样的作者所以当为作者创建新帖子时我们倾向于将自定义字段另存为author_email。 基于此,我们希望显示所有发布的特定作者的帖子。我尝试使用get_posts()方法

<?php 
        $args = array( 'meta_key' => 'author_email', 'meta_value' => 'XYZ@XYZ.com');
        $authorposts=get_posts($args); ?>
    <div id="content">
    <span class="breadcrumbs"><a href="<?php echo get_option('home'); ?>/">Home</a> &raquo; <?php the_category(', ') ?></span>
    <?php if (count( $authorposts ) > 0) {
    foreach ( $authorposts as $post ): setup_postdata($post)            ?>
    <div id="headline_author">
        /*
          showing post tilte with image and some part of it
        */
        <div class="clearfloat"></div>
    </div>
    <?php endforeach;  ?>
    <div class="post-nav">
                <div class="previous"><?php previous_posts_link('&lsaquo; Previous Page') ?></div>
                <div class="next"><?php next_posts_link('Next Page &rsaquo;') ?></div>
    </div>
   <?php
                    } else {
                        echo '<p>No articles by this user</p>';
                    }       
                    ?>
</div>

它显示了前5个结果和下一页的链接,但是当我点击下一页时,它显示它已经转到第二页,因为它在URL上也可见,但它显示相同的5个结果它是什么它已在第一页中显示。 我是一个想法,我在同一页面上写的查询从一开始就再次执行,但不知道如何解决它。 因为我使用cutom字段来获取帖子我可以使用简单的查询来根据限制或offse等获取帖子。

任何人都可以帮助我解决问题,或者可以指出我以正确的方式做到这一点

提前致谢

1 个答案:

答案 0 :(得分:0)

我不是word-press / php专家刚刚开始学习它。您似乎没有设置可以跟踪页码的分页全局变量。

你需要做这样的事情。

$post_per_page = get_option('posts_per_page');
            if (!is_paged()) {
            $custom_offset = 0;
            } else {
            $custom_offset = $post_per_page*($paged-1); 
            }
            $args = array( 'meta_key' => 'author_email', 'meta_value' => xyz@xyz.com' ,'numberposts' => $post_per_page,'offset' => $custom_offset);