不使用query_posts
, 因此,可以使用任何自定义查询来替换主查询。它总是有问题的,它会产生比解决它更多的问题。
使用主查询并使用pre_get_posts
根据需要更改主查询。
要解决您的问题,请删除query_posts
行,这是作者的方式。php应该看起来。
<?php
if(isset($_GET[\'author_name\'])) :
$curauth = get_userdatabylogin($author_name);
else :
$curauth = get_userdata(intval($author));
endif;
?>
<h2>Campaigns by <?php echo $curauth->nickname; ?>:</h2>
<?php
if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<li>
<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link: <?php the_title(); ?>">
<?php the_title(); ?></a>,
</li>
<?php endwhile; else: ?>
<p><?php _e(\'No posts by this author.\'); ?></p>
<?php endif; ?>
将以下内容添加到
functions.php
文件
add_action( \'pre_get_posts\', function ( $q ) {
if( !is_admin() && $q->is_main_query() && $q->is_author() ) {
$q->set( \'posts_per_page\', 100 );
$q->set( \'post_type\', \'campaigns\' );
}
});
这应该可以解决你的问题