web-dev-qa-db-fra.com

Obtenir des messages personnalisés aléatoires à partir d'un type de message personnalisé

J’ai créé un type de message personnalisé nommé predic. J'essaie d’obtenir dans l’un de ce message quatre autres messages aléatoires provenant du même type de message personnalisé. J'ai utilisé ce code, mais je continue à recevoir le même message que je suis dans 4 fois.

<ul>
<?php
$Rand_posts = get_posts('numberposts=4&orderby=Rand');
foreach( $Rand_posts as $post ) :
?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>
</ul>
2
ciro

Vous devez inclure setup_postdata($post); dans votre ligne foreach. Voici un excellent code de démonstration du codex, adopté pour répondre à votre requête:

<ul>
<?php
global $post;
$tmp_post = $post;
$myposts = get_posts( 'post_type=predic&numberposts=4&orderby=Rand' );
foreach( $myposts as $post ) : setup_postdata($post); ?>
    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>
<?php $post = $tmp_post; ?>
</ul>

Notez que nous sommes également en train de réinitialiser $ post sur le poste actuel, afin de ne pas casser d'autres fonctionnalités.

4
Matthew Boynes