听起来你只需要WP_Query 高于正常的post循环。您可以复制single.php
模板并重命名single-cpt_slug.php
. 这将确保此循环仅显示在post类型的单个post上。如果你真的don\'t 要使用单个cpt模板,可以在循环之前使用条件if( is_singular( \'cpt_slug\' ) )
.
为了充分利用这一点,我建议退房The Codex on WP_Query 和Template Hierarchy. 朝着你的single-cpt_slug.php
要定义以下内容的模板:
global $post;
$secondary = new WP_Query( array(
\'post_type\' => \'cpt_slug\',
\'posts_per_page\'=> 10,
\'orderby\' => \'rand\',
\'author\' => $post->post_author,
) );
这定义了第二个查询,您可以像普通循环一样在任何地方循环和显示该查询:
<?php if( $secondary->have_posts() ) : ?>
<?php while( $secondary->have_posts() ) : $secondary->the_post(); ?>
<h1><a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></h1>
<?php the_content(); ?>
<?php endwhile; ?>
<?php
wp_reset_postdata(); // Normalizes Global $post Object
endif;
?>
此时,您可以继续正常的post循环,该循环将显示单个post内容。
:: Note :: 您需要替换上述代码中的所有实例cpt_slug
不管你贴的是什么样的slug。