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:
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');
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:
Para mostrar otro tipo de contenido usamos el parámetro post_type, por ejemplo para mostrar productos:
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.
0 Commentaires