Я не уверен, почему необходимо использовать rewind_posts()
. Вы создаете новый запрос, используя ваше использование query_posts()
каждый раз. rewind_posts()
перематывает запрос на повторное использование.
Если ваше исполнение не страдает, возможно, будет выполнено 5 запросов для получения ваших пяти авторов. Чтобы избежать перезаписи одного и того же кода шаблона каждый раз, когда у вас есть как минимум два параметра. Создайте файл с кодом шаблона в нем, и включить его каждый раз, когда вам это нужно:
<?php include('author_posts.php');?>
Или, еще лучше, создать функцию в вашем functions.php или в файл плагина, который принимает результаты запроса и выводит шаблон.
<?php $posts = query_posts('posts_per_page=1&author=author1');
if(function_exists('my_authors')){my_authors($posts);}
?>
Затем в functions.php или плагин:
function my_authors($posts){
//template code here, using $posts->ID, $posts->post_content, etc
}
Третий вариант, который очищает ваш код и количество запросов было бы использовать категорию для отображения сообщения, присвоенные это здесь. Вы создаете 5 запросов для отображения пяти сообщений. Чтобы использовать один запрос для отображения пяти сообщений и сортировки случайным образом, как вы хотите, отредактируйте каждый из пяти сообщений и назначьте их в новую категорию, скажем: «author sampler». Затем в файле шаблона:
<?php $posts = get_posts('category=author sampler'&order_by=rand&order=asc');
foreach($posts as $post):?>
<?php setup_postdata($post);
//your posted template code follows:
?>
<article id="post-<?php the_ID(); ?>">
<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a><?php edit_post_link('Edit', ' (', ')'); ?></h2>
<p class="p-cat">In: <?php the_category('|') ?></p>
<p class="p-author">
<span class="name">
<?php the_author_posts_link(); ?></span> <span class="avatar"><?php echo get_avatar($email, $size = '32'); ?>
</span>
</p>
<?php //etc ?>
<?php endforeach;?>
Любые обновления? Я рассмотрел возможность ввода всего кода цикла в функцию и затем вызвал это после каждого query_posts, но как заставить их появляться на странице случайно, а не в том порядке, в котором я их написал. – Cameron