web-dev-qa-db-ja.com

the_author()は空の文字列を返します

私は私が構築しているサイトのフロントページ用のページテンプレートをWordPressを使って作成しました。私はこのページに3つの最新の投稿を表示しています、そして投稿の作者の表示を除いてすべてうまくいきます。私は次のコードを使っています

<?php
        $recentposts=get_posts('showposts=3');
        if ($recentposts) 
        {
            foreach($recentposts as $post)
            {
                //setup_postdata($post);
    ?>

        <div class="fifthFloat">
            <h3><a href="<?php the_permalink() ?>" rel="bookmark" 
                     title="Link to <?php the_title_attribute(); ?>">
                        <?php the_title(); ?></a></h3>
            <p>
            <?php
                $postContent = $post->post_content;
                if(strlen($postContent) > 50)
                {
                    $postContent = substr($postContent, 0, 
                             strrpos(substr($postContent, 0, 60), " ")) . " ...";
                }
                echo $postContent;
            ?>
            </p>
            <p>Posted <?php the_time("jS M Y"); ?> by <?php the_author(); ?></p>
        </div>

    <?php
            }
        }
    ?>

そして私はまた次のことを試みました

$user_info = get_userdata($post->post_author);
echo $user_info->first_name;
echo $user_info->last_name;

しかし両方とも空の文字列になります。

5
Simon Fox

これがコメントアウトされているのはなぜですか。

//setup_postdata($post);

この関数は、現在の投稿データと作者データのグローバル変数を設定します。

4
Rarst