En WordPress, ¿cómo muestro una sola publicación aleatoria de un tipo de publicación personalizada en un widget de barra lateral?

1 minuto de lectura

He creado un tipo de publicación personalizada – Testimonios – para un sitio de WP en el que estoy trabajando. Quiero mostrar un solo testimonio aleatorio en mi barra lateral, sin usar un complemento si es posible. ¿Necesito crear un widget de texto con la consulta de publicación adecuada? Si es así, ¿cómo sería?

Muchas gracias,

cinthia

avatar de usuario
el alfa

Si lo desea, puede pegar directamente el siguiente fragmento de código en su sidebar.php donde quieres mostrar el Testimonials (asegúrese de que sea testimonials/Testimonials)

<?php
  $args = array(
    'post_type'=>'testimonials', 
    'orderby'=>'rand', 
    'posts_per_page'=>'1'
  );

  $testimonials=new WP_Query($args);

  while ($testimonials->have_posts()) : $testimonials->the_post(); 
?>
    <h2><a href="https://stackoverflow.com/questions/11601038/<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
    <p><?php the_excerpt(); // or the_content(); ?></p>
<?php 
  endwhile;
  wp_reset_postdata();
?>

  • Intenté poner su código en un widget de texto avanzado que permite php y obtuve un error, así que jugué con él y terminé modificándolo a esto: ‘testimonials’, ‘orderby’ =>’rand’, ‘publicaciones_por_página’=>’1’); $testimonials=new WP_Query($args); while ($testimonials->have_posts()) : $testimonials->the_post(); ?>

    – Cinthia

    22 de julio de 2012 a las 17:21


  • @Cynthia Si quieres realmente aleatorio, no siempre agregues el mismo contenido remove_all_filters('posts_orderby');Entonces, se verá así en su código: <?php remove_all_filters('posts_orderby'); $args=array('post_type'=>'projects', 'orderby'=>'rand', 'posts_per_page'=>'2'); $projects=new WP_Query($args); while ($projects->have_posts()) : $projects->the_post(); ?> <h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2> <p><?php the_excerpt();?></p> <?php endwhile; wp_reset_postdata(); ?>

    – viery365

    6 mayo 2016 a las 23:33


  • ¿Ha sido útil esta solución?