适用于单一作者的循环自定义帖子类型

时间:2013-11-23 作者:user2591811

我正在创建自定义作者。php页面,在该页面上,我希望有不同的区域可以显示自定义帖子类型(cpt)。因此,我将在一个区域显示cpt的“博客”,在另一个区域显示cpt的“音频”,在另一个区域显示cpt的“视频”,等等——但都是为了一个作者——比如阿尔伯特·爱因斯坦,在他的作者页面上。

理想情况下,每个循环都是有条件的,这样当没有cpt时,比如“视频”或“博客”,就不会显示任何内容。

我环顾四周,但找不到适合我的代码。如果有人能帮助提供至少一个cpt循环的代码,那将非常有用。非常感谢。以下是我正在使用的代码——出于某种原因,它没有调用ctp,因此页面上没有出现帖子:

<?php
    $curauth = (isset($_GET[\'author_name\'])) ? get_user_by(\'slug\', $author_name) : get_userdata(intval($author));
    query_posts( array(
            \'post_type\' => array(\'video\'),
            \'author\' => $author,
            \'posts_per_page\' => 10 )
        );
?>

1 个回复
SO网友:Marcos Rodrigues

您不应该使用query_posts() 要创建自定义查询,请使用WP_query()

你应该用这段代码得到你想要的。

    <?php
    $args = array(
        \'post_type\'      => array( \'post\' ),
        \'posts_per_page\' => 10,
        \'author\'         => $author
    );


    $author_videos = new WP_Query( $args );

    if ( $author_videos->have_posts() ) : while ( $author_videos->have_posts() ) : $author_videos->the_post(); ?>
            <h1><?php the_title(); ?></h1>
        <?php endwhile;
            wp_reset_postdata();
endif; ?>

结束

相关推荐