在Auth.php中显示自定义帖子类型

时间:2015-02-19 作者:Theo Leep

我正在试图修改我的作者。php页面,以便它包含作者添加的自定义帖子类型。

下面是我拥有的内容,它首先显示普通帖子,然后显示自定义帖子类型(my\\u custom\\u post\\u type)。

第一部分似乎工作正常,显示正确。然而,第二部分似乎显示了所有自定义的帖子类型,而不仅仅是那些与作者的作者相关的帖子类型。php页面。

任何帮助都将不胜感激。非常感谢。

<!-- Show normal posts from the author -->
<?php if ( have_posts() ): ?>
    <h3>Posts by <?php echo $curauth->first_name; ?>:</h3>
    <?php while ( have_posts() ) : the_post(); ?>
        <p><?php the_title(); ?></p>
    <?php endwhile; ?>
<?php else: ?>
    <p><?php _e(\'User has no posts\'); ?></p>
<?php endif; ?>


<!-- Show custom post type posts from the author -->
<?php global $wp_query;
query_posts( array(
    \'post_type\' => \'my_custom_post_type\' ,
    \'author=\' . $authorid,
    \'showposts\' => 10 )
); ?>

<?php if ( have_posts() ): ?>
    <h3>Custom post entries by <?php echo $curauth->first_name; ?>:</h3>
    <?php while ( have_posts() ) : the_post(); ?>
        <p><?php the_title(); ?></p>
    <?php endwhile; ?>
<?php else: ?>
    <p><?php _e(\'User has no custom posts\'); ?></p>
<?php endif; ?>

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

我猜你不会$authorid 无论在哪里,它都会被忽略并返回所有帖子,无论作者是谁。如果你enable debugging, 你会得到警告的$authorid 未定义。始终在启用调试的情况下进行开发是一种很好的做法,因此您不必猜测错误是什么。

另外,不要使用query_posts 对于其他查询,或者实际上!它会覆盖原始的主查询,并可能在模板中的其他地方产生不可预测的结果。使用WP_Query而是:

$args = array(
    \'post_type\' => \'my_custom_post_type\' ,
    \'author\' => get_queried_object_id(), // this will be the author ID on the author page
    \'showposts\' => 10
);
$custom_posts = new WP_Query( $args );
if ( $custom_posts->have_posts() ):
    while ( $custom_posts->have_posts() ) : $custom_posts->the_post();
        // your markup
    endwhile;
else:
    // nothing found
endif;
注意:对于自定义查询,我们将帖子分配给$custom_posts (或任何您想使用的唯一变量名),然后在循环中引用该变量。

结束