Ticker

6/recent/ticker-posts

Ad Code

Responsive Advertisement

Mostrar contenido aleatorio en WordPress

En este artículo veremos como crear un Shortcode para mostrar entradas, páginas, o cualquier otro tipo de contenido de manera aleatoria en WordPress.

 

Resultado Final

Al final queremos obtener algo similar a lo que se muestra en la siguiente imagen:

Entradas aleatorias resultado final

 

Código para crear Shortcode de contenido aleatorio

El siguiente código crea un Shortcode con parámetros para mostrar diferentes tipos de contenido de manera aleatoria.

El nombre del Shortcode es [dcms-random-content] y los parámetros que podemos usar son:

  • title: Título que aparecerá sobre la lista
  • post_type: Tipo de contenido, como: posts, page, product, etc. por defecto es posts
  • qty: Cantidad de elementos a mostrar, por defecto es 4

 

function dcms_random_content($atts) { 

        $default_atts = ['qty' => '4', 'post_type' => 'post', 'title' => ''];
        $atts   = shortcode_atts($default_atts, $atts, 'dcms-random-content' );

        $args = [
                'post_type' => $atts['post_type'],
                'posts_per_page' => (int)$atts['qty'],
                'orderby'   => 'rand',
                'post_status' => 'published'
        ];

        $query = new WP_Query( $args );
          
        $string = '';

        if ( $query->have_posts() ) {          
                if ( $atts['title'] ){
                        $string = '<h3>'.$atts['title'].'</h3>';
                }

                $string .= '<ul class="rand-content">';
                        while ( $query->have_posts() ) {
                                $query->the_post();
                                $string .= '<li>➜ <a href="'. get_permalink() .'">'. get_the_title() .'</a></li>';
                        }
                $string .= '</ul>';
                wp_reset_postdata();
        }
          
        return $string;
} 
        
add_shortcode('dcms-random-content','dcms_random_content');
Puedes agregar el código anterior como parte del archivo functions.php de tu tema hijo o usando algún plugin de snippets.

 
En el código anterior:

  • Creamos el shortcode llamado dcms-random-content, que hace referencia a la función dcms_random_content
  • El Shortcode tendrá atributos, por lo que definiremos sus valores por defecto en la variable $default_atts
  • También hacemos uso de la función shortcode_atts() para establecer los valores por defecto
  • Usaremos la clase WP_Query() para obtener los datos pasando diferentes argumentos y establecido por los atributos
  • Todo se ira concatenando en la variable $string
  • Comprobamos si la consulta devuelve valores, establecemos el título en caso exista como atributo
  • Creamos una lista HTML con los valores devueltos por la consulta, cada vez que el while se ejecuta vamos concatenando elementos y usando las funciones de WordPress para mover el puntero y obtener los datos
  • Al final del bucle reseteamos la consulta con la función wp_reset_postdata()
  • Finalmente retornamos la variable $string

 

Uso del Shortcode

Se puede usar el Shortcode como parte del contenido de alguna página o entrada, también como un Widget de Shortcode.

Para mostrar entradas, que es lo que muestra por defecto podemos usar algo similar a la siguiente imagen:

Entradas aleatorias shortcode

 
Para mostrar otro tipo de contenido usamos el parámetro post_type, por ejemplo para mostrar productos:

productos aleatorios shortcode

 

Conclusión

Como has podido comprobar puedes mostrar cualquier tipo de contenido usando las funciones de WordPress, en este caso lo hemos realizado a través de la creación de un Shortcode que nos facilitará la configuración de que tipo de contenido, la cantidad y el título a mostrar.

 

La entrada Mostrar contenido aleatorio en WordPress es un artículo reciente del sitio DecodeCMS.

Enregistrer un commentaire

0 Commentaires