作者页面中缺少最新帖子

时间:2012-04-30 作者:Travis Pflanz

这是我的author.php 页它显示的是最近的帖子,但不是最近的。

我的错在哪里?

    <?php if (have_posts()): the_post(); ?>
        <h3>
            <?php _e(\'All posts by\'); ?> <?php echo get_the_author(); ?>
            <span class="arrows">&raquo;</span>
        </h3>

    <?php while (have_posts()) : the_post();?>

    <div id="post-<?php the_ID(); ?>" class="cat-post">
    <div class="cat-post-left">
        <a href="<?php the_permalink() ?>" title="<?php bloginfo(\'name\'); ?> - <?php bloginfo(\'description\'); ?> - <?php the_title(); ?>"><?php the_post_thumbnail( \'300x169\' ); ?></a>
        <div class="meta-box">
        <div class="post-meta">
<div class="line"><cite>By &nbsp;<span class="plus-icon"><?php the_author_posts_link(); ?></span></cite><span><?php the_date(); ?></span></div>
</div>
</div>
</div>
            <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php bloginfo(\'name\'); ?> - <?php bloginfo(\'description\'); ?> - <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
                <?php the_excerpt(); ?>
                <a class="continue-reading" href="<?php the_permalink(); ?>">Read on &raquo;</a>
            </div>
Here is the site. 主页上的“编辑点评”帖子是最近发布的,不会出现在the Author page.

2 个回复
最合适的回答,由SO网友:EAMann 整理而成

错误出现在您的第一个代码块中:

<?php if (have_posts()): the_post(); ?>
    <h3>
        <?php _e(\'All posts by\'); ?> <?php echo get_the_author(); ?>
        <span class="arrows">&raquo;</span>
    </h3>

<?php while (have_posts()) : the_post();?>
你打电话the_post() 填充常规模板标记(即。get_the_author()) 但不要使用帖子的其余部分。然后,在你的while 回路,你呼叫the_post() 用结果集中的下一个帖子填充这些模板标签。

相反,您还需要处理第一个块中的第一个帖子。将代码更改为以下内容:

<?php if (have_posts()): the_post(); ?>
    <h3>
        <?php _e(\'All posts by\'); ?> <?php the_author(); ?>
        <span class="arrows">&raquo;</span>
    </h3>

    <!-- markup for first post -->
    <div id="post-<?php the_ID(); ?>" class="cat-post">
        <div class="cat-post-left">
            <a href="<?php the_permalink() ?>" title="<?php bloginfo(\'name\'); ?> - <?php bloginfo(\'description\'); ?> - <?php the_title(); ?>"><?php the_post_thumbnail( \'300x169\' ); ?></a>
            <div class="meta-box">
                <div class="post-meta">
                    <div class="line"><cite>By &nbsp;<span class="plus-icon"><?php the_author_posts_link(); ?></span></cite><span><?php the_date(); ?></span></div>
                </div>
            </div>
        </div>

        <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php bloginfo(\'name\'); ?> - <?php bloginfo(\'description\'); ?> - <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
        <?php the_excerpt(); ?>
        <a class="continue-reading" href="<?php the_permalink(); ?>">Read on &raquo;</a>
    </div>

<?php while (have_posts()) : the_post();?>

    <!-- markup for subsequent posts -->
    <div id="post-<?php the_ID(); ?>" class="cat-post">
        <div class="cat-post-left">
            <a href="<?php the_permalink() ?>" title="<?php bloginfo(\'name\'); ?> - <?php bloginfo(\'description\'); ?> - <?php the_title(); ?>"><?php the_post_thumbnail( \'300x169\' ); ?></a>
            <div class="meta-box">
                <div class="post-meta">
                    <div class="line"><cite>By &nbsp;<span class="plus-icon"><?php the_author_posts_link(); ?></span></cite><span><?php the_date(); ?></span></div>
                </div>
            </div>
        </div>

        <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php bloginfo(\'name\'); ?> - <?php bloginfo(\'description\'); ?> - <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
        <?php the_excerpt(); ?>
        <a class="continue-reading" href="<?php the_permalink(); ?>">Read on &raquo;</a>
    </div>

SO网友:jasonbradberry

使用rewind_posts();. 我最近用它来解决这个问题,效果很好。它只需将循环倒回第一个帖子(http://codex.wordpress.org/Function_Reference/rewind_posts).

下面我建议使用(未测试)代码。

<?php rewind_posts(); ?>
<?php if (have_posts()): the_post(); ?>
    <h3>
        <?php _e(\'All posts by\'); ?> <?php echo get_the_author(); ?>
        <span class="arrows">&raquo;</span>
    </h3>

<?php while (have_posts()) : the_post();?>

<div id="post-<?php the_ID(); ?>" class="cat-post">
<div class="cat-post-left">
    <a href="<?php the_permalink() ?>" title="<?php bloginfo(\'name\'); ?> - <?php bloginfo(\'description\'); ?> - <?php the_title(); ?>"><?php the_post_thumbnail( \'300x169\' ); ?></a>
    <div class="meta-box">
    <div class="post-meta">
<div class="line"><cite>By &nbsp;<span class="plus-icon"><?php the_author_posts_link(); ?></span></cite><span><?php the_date(); ?></span></div>
</div>
</div>
</div>
            <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php bloginfo(\'name\'); ?> - <?php bloginfo(\'description\'); ?> - <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
                <?php the_excerpt(); ?>
                <a class="continue-reading" href="<?php the_permalink(); ?>">Read on &raquo;</a>
        </div>

结束