Je ne sais pas pourquoi l'utilisation de rewind_posts()
est nécessaire. Vous créez une nouvelle requête à l'aide de query_posts()
à chaque fois. rewind_posts()
rembobine la requête pour la réutiliser.
Si votre performance ne souffre pas, il peut être bon d'exécuter 5 requêtes pour obtenir vos cinq auteurs. Pour éviter de réécrire le même code de modèle chaque fois que vous avez au moins deux options. Créez un fichier php avec le code du modèle en elle, et l'inclure à chaque fois que vous en avez besoin:
<?php include('author_posts.php');?>
Ou, mieux encore, créer une fonction dans votre functions.php ou dans un fichier de plug-in qui accepte les résultats de la requête et sort le modèle.
<?php $posts = query_posts('posts_per_page=1&author=author1');
if(function_exists('my_authors')){my_authors($posts);}
?>
Ensuite, dans votre functions.php ou plugin:
function my_authors($posts){
//template code here, using $posts->ID, $posts->post_content, etc
}
La troisième option, qui nettoie votre code et le nombre de requêtes serait d'utiliser une catégorie pour afficher les messages attribués à c'est ici. Vous faites 5 requêtes pour afficher cinq messages. Pour utiliser une requête pour afficher cinq messages et trier au hasard comme vous voulez, éditez chacun des cinq messages et assignez-les à une nouvelle catégorie, disons: 'auteur sampler'. Puis dans votre fichier modèle:
<?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;?>
Des mises à jour? J'ai regardé en mettant tout le code de boucle dans une fonction et appelez cela après chaque query_posts, mais comment puis-je les faire apparaître aléatoirement sur la page au lieu de dans l'ordre dans lequel je les ai écrits. – Cameron