J'ai ce code qui renvoie la liste des titres d'articles sous forme de liens, mais lorsque j'ajoute les paramètres "orderby" et "order", les résultats sont renvoyés mais "orderby, order, Rand" ne fonctionne pas, quelqu'un peut-il me dire ce que je suis faire le mal? Merci!
<ul>
<?php $post; $cat_posts = get_posts(array('numberposts' => 10, 'orderby' => 'Rand', 'order' => ASC, 'category' => $disciplineCatID));
foreach($cat_posts as $post) : ?>
<?php $postTitle = get_the_title(); if($title != $postTitle) :?>
<li><a href="<?php the_permalink(); ?>">›› <?php the_title(); ?></a></li>
<?php endif ;?>
<?php endforeach; ?>
</ul>
Oui, c'est la syntaxe correcte:
$args = array(
'orderby' => 'Rand',
'order' => 'ASC'
);
query_posts( $args );
Cependant, les plugins peuvent empêcher cela de fonctionner correctement. Essayez de désactiverALLplugins et voyez si cela vous aide. Deux plugins connus qui empêchent orderby=Rand
de fonctionner sont Post Type Order
et WP_Sticky
En outre, si vous avez installé la commande Postes, assurez-vous de visiter la page Admin et de vérifier les paramètres. Vous pouvez utiliser ce plugin et l'empêcher de réorganiser automatiquement les publications:
http://img829.imageshack.us/img829/2616/pictureot.png
Et ensuite, vous pouvez utiliser le code de type de poste commandé pour commander spécifiquement ces articles dans les endroits où vous souhaitez qu'ils soient commandés via la commande custom/menu-order. Voici l'exemple de code pour ce plugin:
Le code PHP suivant renverra toujours la publication dans l'ordre de configuration:
$args = array(
'post_type' => 'feature'
);
$my_query = new WP_Query($args);
while ($my_query->have_posts())
{
$my_query->the_post();
(..your code..)
}
Ou:
$posts = get_posts($args);
foreach ($posts as $post)
{
(..your code..)
}
Si la case de tri automatique est désactivée, vous devrez utiliser les paramètres "orderby" et "order":
$args = array(
'post_type' => 'feature',
'orderby' => 'menu_order',
'order' => 'ASC'
);
Pourquoi n'essayez-vous pas d'utiliser query_posts à la place?
Quelque chose comme:
$args = array(
'orderby' => 'Rand',
'order' => 'ASC'
);
query_posts( $args );
essayez ce code
<?php
remove_all_filters('posts_orderby');
query_posts('orderby=Rand');
?>
a la réponse d'ici
http://www.reinaris.nl/wp/wordpress-random-post-order-not-working-orderbyrand/
Vous avez probablement oublié de setup_postdata
dans votre boucle foreach
pour que les balises de gabarit fonctionnent.
J'ai rencontré le même problème et, heureusement, j'ai trouvé ce fil. J'ai essayé une solution différente, probablement plus sale que les autres, mais peut-être utile dans certains cas.
Fondamentalement, je ai mélangé les messages avant de les sortir:
<?php
$selectedPosts = get_posts($args);
shuffle($selectedPosts);
foreach ($selectedPosts as $selectedPost) :
setup_postdata( $selectedPost );
?>
<!-- post elements here -->
<?php
endforeach;
wp_reset_postdata();
?>