Por qué los shortcodes de WordPress pueden ser tan útiles
WordPress es uno de los sistemas de gestión de contenidos más utilizados del mundo. Innumerables plugins han ayudado al antiguo software de creación de blogs a desarrollar una enorme gama de funciones que pueden utilizarse para realizar una gran variedad de proyectos web. Sin embargo, WordPress se ha mantenido fiel a una cosa a lo largo de los años: Es un sistema que puede ser utilizado por blogueros, editores y otros redactores sin ningún conocimiento de HTML y CSS, lo que lo convierte en una solución rápida y sin complicaciones para distribuir contenidos en la World Wide Web.
Así que si quieres dar tus primeros pasos como autor web, WordPress es la elección perfecta. En 2008, los desarrolladores de WordPress también introdujeron una función llamada shortcodes, que te permite añadir fácilmente elementos dinámicos a tus entradas editoriales.
¿Qué es un shortcode?
Los llamados shortcodes, que se introdujeron con la versión 2.5 de WordPress, son accesos directos que se pueden colocar dentro de los textos y están vinculados a un código PHP. Este se almacena en el archivo functions.php o en un archivo .php independiente que se integra en el archivo functions.php. Si se llama a una página con un shortcode, WordPress se encarga de que se ejecute e interprete el script correspondiente. Por lo tanto, el visitante ve el contenido generado por la función PHP en lugar del código. Estrictamente hablando, el shortcode actúa como un marcador de posición, por ejemplo para elementos simples como un extracto de texto o para tipos de contenido dinámico como ventanas emergentes o una galería de imágenes.
Implementar un shortcode en WordPress no supone un gran reto: Se insertan directamente en el editor, en el lugar adecuado de la entrada. Para que WordPress reconozca los códigos como tales, se colocan entre corchetes [ ]. Por ejemplo, un shortcode tiene la forma [current-posts]. Junto con la función PHP correspondiente, este código muestra otras entradas publicadas recientemente en la posición seleccionada. La dirección Códigos cortos de WordPress también puede especificarse con parámetros adicionales. Por ejemplo, para limitar la visualización de los posts publicados más recientemente a cinco, el shortcode que acabamos de utilizar puede ampliarse de la siguiente manera: [current-posts posts="5″].
Por qué los shortcodes de WordPress pueden ser tan útiles
Dos aspectos en particular hacen que los shortcodes en WordPress sean tan prácticos: en primer lugar, incluso los usuarios que no tienen conocimientos de JavaScript o CSS pueden añadir dinamismo a su proyecto web. Incluso el lenguaje de scripting PHP, que es elemental para los shortcodes, no tiene por qué dominarse necesariamente, ya que varios shortcodes, incluidos los scripts correspondientes, ya están disponibles por defecto en WordPress. Estos están claramente listados en la página oficial. Allí también encontrará instrucciones sobre cómo utilizar los respectivos Desbloquear shortcode y puede utilizarlos. Además, muchos usuarios de WordPress ponen a disposición de forma gratuita sus propios shortcodes en diversas plataformas como SNIPPLR. Muchos plugins y plantillas también ofrecen sus propios shortcodes. Así que sólo tienes que programarte si quieres cambiar un código existente o necesitas uno completamente nuevo.
La segunda gran ventaja de Shortcodes es el ahorrador de tiempoSi, por ejemplo, utiliza un determinado pasaje de texto, logotipo u otro elemento repetidamente en sus artículos, colocar un shortcode programado adecuadamente le ahorrará una enorme cantidad de tiempo. Si más adelante quiere cambiar algo de este elemento, no tiene que hacerlo individualmente para cada artículo. Simplemente adapte el código PHP y los cambios se aplicarán a todas las páginas de su proyecto WordPress que contengan el shortcode.
Cómo crear tus propios shortcodes en WordPress
Ya ha quedado claro que el núcleo de un shortcode es el script PHP que se ejecuta en cuanto WordPress encuentra un shortcode previamente definido. Sin embargo, las siguientes secciones no tratan tanto de cómo programar dicho script, ya que esto supondría un curso básico de programación PHP que te llevaría fuera del tema. En su lugar, las siguientes secciones le mostrarán cómo integrar shortcodes en WordPress, utilizarlos para su proyecto y desactivarlos de nuevo. Puedes añadir el código PHP correspondiente al archivo functions.php en el directorio del tema que estés usando o a un archivo PHP separado que integres como corresponda. Deberías crear un tema hijo para que tus propios shortcodes no desaparezcan la próxima vez que se actualice el tema. Esto puede hacerse en unos sencillos pasos, como muestran las instrucciones del foro de soporte de WordPress.
Crear función callback
La función PHP que se ejecuta tan pronto como WordPress registra un shortcode es una función llamada de retorno. Como tal, se pasa a otra función como parámetro y se llama bajo condiciones definidas con parámetros definidos. La siguiente función de ejemplo busca en la base de datos y genera un enlace a la última entrada para el shortcode [current-posts]:
function current_posts_function() {
query_posts(array('orderby' => 'date', 'order' => 'DESC' , 'showposts' => 1));
if (have_posts()) :
while (have_posts()) : the_post();
$return_string = '<a href="/es/'.get_permalink().'/">'.get_the_title().'</a>';
endwhile;
endif;
wp_reset_query();
return $return_string;
}
El texto que debe reemplazar al shortcode está en la variable $return_string (PHP identifica todas las variables con $). La función PHP (current_posts_function) devuelve esta variable. Si accidentalmente utiliza el comando echo en su lugar, el elemento implementado mediante shortcode aparecerá de repente antes que el contenido real.
Introducir un shortcode en WordPress
Debe indicar a WordPress que la función que ha creado es un shortcode que debe ejecutarse automáticamente cuando una página llamada contenga el shortcode [current-posts]. Para ello, añada el siguiente código a su archivo PHP:
add_shortcode('current-posts', 'current_posts_function');
De este modo ha definido el nombre del shortcode [current-posts], que utilizará más adelante en el editor, y la función current_posts_function() que se utilizará. Para evitar conflictos entre diferentes shortcodes de WordPress, es importante elegir un nombre único.
Definir shortcodes parametrizados y funcionalizados
Para hacer su shortcode WordPress aún más flexible, puede añadir parámetros opcionales. En el ejemplo utilizado hasta ahora, tiene sentido especificar en el shortcode exactamente cuántas entradas deben mostrarse. Para ello, necesita dos funciones adicionales: En primer lugar, la función shortcode_atts(), que combina los atributos del shortcode generados por el usuario con los atributos nativos e inserta automáticamente los valores por defecto requeridos. En segundo lugar, se necesita la función PHP extract() para extraer los atributos del shortcode. En caso de que el campo de argumentos quede vacío, deberá especificarse el valor por defecto 1 ('posts' => 1):
function current_posts_function($atts){
extract(shortcode_atts(array(
'posts' => 1,
), $atts));
1TP4Cadena_de_retorno = '<ul>';
query_posts(array('orderby' => 'date', 'order' => 'DESC' , 'showposts' => $posts));
if (have_posts()) :
while (have_posts()) : the_post();
$return_string .='<li><ahref="'.get_permalink().'">'.get_the_title().'</a></li>';
endwhile;
endif;
1TP4Cadena_de_retorno .= '</ul>';
wp_reset_query();
return $return_string;
}
Si ahora introduce el shortcode en el texto de la siguiente manera [current-posts posts="5″], no sólo se mostrará el artículo publicado más recientemente, sino también una lista de los cinco artículos más recientes.
Uso de determinados contenidos como parámetros del shortcode
Puede modificar aún más el ejemplo presentado y añadir también un elemento de contenido específico como parámetro. En nuestro ejemplo, este parámetro de contenido debería definir el título de un encabezamiento. Para ello, añada la variable $content al script de devolución de llamada e inserte el encabezado HTML antes de la enumeración:
function current_posts_function($atts, $content = null) {
extract(shortcode_atts(array(
'posts' => 1,
), $atts));
$return_string = '<h3>'.$content.'</h3>';
$return_string .= '<ul>';
query_posts(array('orderby' => 'date', 'order' => 'DESC' , 'showposts' => $posts));
if (have_posts()) :
while (have_posts()) : the_post();
$return_string .= '<li><a href="/es/'.get_permalink().'/">'.get_the_title().'</a></li>';
endwhile;
endif;
1TP4Cadena_de_retorno .= '</ul>';
wp_reset_query();
return $return_string;
}
Ahora rodea el título deseado en tu texto con un shortcode de apertura y otro de cierre, similar a una etiqueta HTML:
[current-posts posts ="5"]Encabezamiento de la lista de artículos actuales[/current-posts]
Utilizar el código corto de WordPress en un widget
Hasta ahora, sólo hemos tratado el uso de shortcodes en el editor de texto de WordPress. Sin embargo, a menudo hay situaciones en las que los shortcodes también son interesantes para un widget como una barra lateral. WordPress no reconoce los shortcodes allí por defecto, pero esto puede cambiarse rápidamente con una pequeña línea de código adicional en el archivo PHP:
add_filter('widget_text', 'do_shortcode');
Utilice este código para indicar a WordPress que compruebe también los elementos de texto en los widgets para shortcodes.
Desactivación de shortcodes que ya no son necesarios
Si ya no necesita un determinado shortcode de WordPress, tiene dos opciones para desactivarlo: La solución óptima sería eliminar la función callback del archivo PHP y todas las entradas del código de sus entradas. Si en cambio sólo elimina la función callback, WordPress ya no reconocerá el shortcode como tal y lo mostrará en texto plano en medio del artículo. Como este método consume mucho tiempo para un shortcode de uso frecuente, existe una segunda opción para estos casos: en lugar de eliminar el código y la función PHP, se amplía la función callback mediante una sentencia que no devuelve nada y, por tanto, queda prácticamente bloqueada:
add_shortcode('current-posts', '__return_false');
Códigos cortos útiles para tu blog
Ahora que ha adquirido una breve visión de la estructura de los shortcodes y sabe cómo registrarlos e integrarlos en WordPress, los siguientes ejemplos deberían darle una idea de las muchas posibilidades de la tecnología shortcode.
Insertar enlace
Para añadir un botón de enlace con etiquetado individual a su proyecto, todo lo que necesita es un shortcode con la siguiente función callback:
function link_button_function( $atts, $content = null ) {
return '';
}
add_shortcode('link-button', 'link_button_function');
El etiquetado deseado del botón se coloca simplemente entre el shortcode de apertura y el de cierre:
[link-button]¡Haga clic aquí![/link-button]
Visualización del menú de WordPress
Puede utilizar el siguiente código para mostrar un menú seleccionado de su proyecto de WordPress debajo de la entrada de texto:
function menu_function($atts, $content = null) {
extraer(
shortcode_atts(
array( 'nombre' => null, ),
1TP4Vatios
)
);
return wp_nav_menu(
array(
'menu' => $name,
'echo' => false
)
);
}
add_shortcode('menu', 'menu_function');
Si desea utilizar este shortcode, introduzca simplemente el nombre del menú correspondiente como parámetro, por ejemplo
[menu name="Menú principal"]
La forma más fácil de WordPress shortcode son los plugins
Para todos aquellos que no quieran crear su propio shortcode ni implementar manualmente los ejemplos ya preparados en functions.php o en el archivo PHP correspondiente, existe otra forma de activar los útiles shortcodes para su propio proyecto web: En la página oficial de WordPress, encontrará una gran selección de plugins que añaden tanto uno como varios shortcodes diferentes a su instalación de WordPress. Con la extensión Last Updated Shortcode, por ejemplo, puede acceder al shortcode del mismo nombre [lastupdated], que muestra cuándo se actualizó por última vez un artículo o página.
Con más de 50 shortcodes y su propio editor CSS, el plugin Shortcodes Ultimate es algo más completo. Con él se pueden añadir a WordPress, por ejemplo, shortcodes para pestañas, botones, cajas o deslizadores. Sin embargo, siempre hay que tener en cuenta lo siguiente al utilizar plugins de shortcodes: Las extensiones consumen recursos informáticos y ralentizan tu proyecto web si se utilizan en exceso. Además, normalmente no se sabe si un Plugin se siga desarrollando y actualizando periódicamente o si representa una vulnerabilidad de seguridad.
Por último, cabe mencionar que no sólo existen plugins que implementan shortcodes, sino también aquellos que te ayudan a crear tus propias funciones callback y a gestionar tus shortcodes.
Shortcoder: Puedes crear tus propios shortcodes en un editor visual y simplemente añadirles fragmentos de HTML y JavaScript.