Los Shortcodes son el método que plantea WordPress para poder utilizar funciones tipo Php en los editores de contenido.

Aquí presento varios ejemplos de situaciones recurrentes que se pueden plantear con Shortcodes.

Shortcode con parámetros

Este es un ejemplo de como podemos añadir parámetros de configuración a cualquier Shortcode.

function shortcode_testimonios($atts = '') {

	$atributos = shortcode_atts([  'order' => 'DEFAULT_VALUE',  ], $atts);

	$order = $atributos['order'];

	return $order;
	
}

add_shortcode('testimonios', 'shortcode_testimonios'); 
[testimonios order="ASC"]

Shortcode para Custom Post Type

Con este Shortecode mostraremos todas las entradas de un Custom Post Type en cualquier parte de la web, requiere de cierta personalización.

function shortcode_custompost($atts = '') {

    $atributos = shortcode_atts([  'poststatus' => 'publish',  ], $atts);
    $atributos = shortcode_atts([  'posttype' => 'post',  ], $atts);

    $query_args = array(
        'posts_per_page' => -1, 
        'post_status' => $atributos['poststatus'],
        'post_type'  => $atributos['posttype']
    );


    $the_query =  new WP_query( $query_args );

    $exit = '';

    while ( $the_query->have_posts() ) :

        $the_query->the_post();   

        $exit .= '
        	'.get_the_title().'   
            '.get_the_content().'    
            '.get_the_post_thumbnail_url().'
        ';

    endwhile;

    wp_reset_postdata(); 

    return $exit;

 }
 
add_shortcode('custompost', 'shortcode_custompost'); 
[custompost posttype="clientes" poststatus="publish"]

Shortcode año dinámico

Con este Shorcode mostraremos el año actual en cualquier parte de la web, que cambiara automáticamente en año nuevo.

function shortcode_ano(){

    return date("Y");

}

add_shortcode('ano', 'shortcode_ano'); 
2021

Incrustar Shortcode en template

Con esta función podremos lanzar un Shortcode directamente desde un template de WordPress.

<?php
	echo do_shortcode( '[contact-form-7 404 "No encontrado"]' );
?>

Si te ha sido de utilidad ¡deja un comentario! 🙂