Usando shortcodes en todas partes

hack wordpress

Ya hemos visto muchas maneras de personalizar WordPress con shortcodes pero estas pequeñas maravillas pueden usarse en muchos más sitios que en el editor de entradas, aquí tienes unos cuantos buenos ejemplos … 

Shorcodes en widgets de texto

Lo primero es añadir este código al fichero functions.php de tu tema activo:

add_filter( 'widget_text', 'shortcode_unautop');
add_filter( 'widget_text', 'do_shortcode');

La segunda línea es la que hace que funcionen los shortcodes en el widget de texto. Además, hay que tener en cuenta que los widgets de texto tienen una casilla para «añadir saltos de párrafo automáticamente», pues bien, la segunda linea inhabilita el código autop que podría, en caso de estar marcada la casilla, meter el shortcode introducido en un párrafo o incluso romper las tags.

Shortcodes en el tema

También se pueden usar shortcodes en el tema que uses. Para ello utilizamos la función do_shortcode() en la que el argumento será una cadena que contendrá el shortcode.

Por ejemplo, para mostrar el shortcode [publicidad] en tu tema pondrías algo así donde quieras que aparezca el resultado esperado:

<?php do_shortcode('&#91;publicidad&#93;'); ?>

La función do_shortcode() acepta cualquier tipo de texto. Si la cadena contiene un shortcode procesará ese código. De este modo, por ejemplo, podrías mostrar manualmente contenido de tus entradas de este modo:

<?php
$content = get_the_content();
echo do_shortcode($content);
?>

Shortcodes en comentarios

De nuevo recurrimos al fichero functions.php para añadirle este código que permite shortcodes en los campos de comentarios:

add_filter( 'comment_text', 'shortcode_unautop');
add_filter( 'comment_text', 'do_shortcode' );

Shortcodes en extractos

Ahora, en functions.php añadiremos esto para poder insertar shortcodes en los extractos de entrada:

add_filter( 'the_excerpt', 'shortcode_unautop');
add_filter( 'the_excerpt', 'do_shortcode');

Shortcodes en la descripción de usuario

Para poder meter shortcodes en la descripción del usuario hay que pasar la cadena de descripción por la función do_shortcode(). Para ello tendrás que añadir esto a tu tema activo:

<?php
// $user_id = 3;
$userdata = get_userdata($user_id);
echo do_shortcode($userdata->description);
?>

Solo tendrás que cambiar el ID de usuario, en este caso el 3.

Shortcodes en descripciones de etiquetas, categorías y taxonomías

También puedes filtrar estas descripciones. Para ello recurrimos de nuevo al fichero functions.php:

add_filter( 'term_description', 'shortcode_unautop');
add_filter( 'term_description', 'do_shortcode' );

Un mundo de posibilidades más ¿no?

VALORA Y COMPARTE ESTE ARTÍCULO PARA MEJORAR LA CALIDAD DEL BLOG…
(12 votos, promedio: 4.8)

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

AVISO: Esta publicación es de hace 3 años o más. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado.

19 comentarios en “Usando shortcodes en todas partes”

  1. Pingback: wp-popular.com » Blog Archive » Usando shortcodes en todas partes | Ayuda WordPress

  2. podrías poner ejemplos mas claros? no entiendo bien el concepto…

    Solo pusisteis ejemplos de funciones, pero .. no veo ningun shortcode salvo en el ejemplo de 'publicidad'

    saludos

  3. Hola a [email protected]: Utilizo un plugin llamado «better author Bio» que es una firma que se puede incluir en las entradas. Pues bien, tengo un conflicto con BBPress y consiste en que la firma me aparece en los subforos que creo.
    He visto las opciones del plugin y parece ser que se puede utilizar manualmente mediante shortcodes (cosa que no me ha funcionado) y tambien mediante una función. El mensaje que me indica es:

    «Use [author_bio] shortcode anywhere in your post body to display the author bio or put in the source code of your current theme where you want to show the author bio box. You should find out of single.php file of your current theme and put the code there. If you find anything wrong after doing that just delete better-author-bio folder from your server’s plugins directory. Don’t worry, in most of the cases nothing wrong will happen 🙂 «.

    Uso el theme Mystique y lo que me interesaría es que sólo apareciera en las entradas de los post. ¿donde incluir ?
    Muchas gracias por vuestra ayuda.

  4. CESAR ESPOSITO

    Muchas gracias Fernando, me fue difícil encontrar como meter el shortcode dentro de una plantilla con la profundidad de tu explicación.
    Grande

  5. A veces en vez de funciona mejor si usamos . Yo lo descubrí porque no conseguía de Tubepress se ejecutara correctamente como shortcode.

  6. Joder, menudo fail, no me muestra el código que he pegado en el comentario. Decía que mejor usar esto: echo apply_filters(‘the_content’, ‘[el-shorcode]’);

  7. Por cierto, el botón de publicar comentario debería decir «Publicar», pero pone «Artículo» que no tiene ningún sentido y es una ridícula traducción de «Post». En fin, cosas del Disquis. Saludos y gracias por el blog, está muy interesante!

  8. Alguna manera de meter un sortcode para que aparezca automaticamente en todas las descripciones cortas de producto en woocommerce? Gracias

  9. Gracias me fue útil la info, solo un detalla para usar los Shortcode dentro del tema correctamente, hay que imprimir con un echo la función ya que do_shortcode() no imprime su contenido.
    Por ejemplo: echo do_shortcode(‘[calendar]’);
    Saludos.

  10. Hola, buenas tardes, tengo un problema, en la pág de inicio quiero poner 4 columnas y poner artículos con SKU, pongo esto y no me sale nada [[[productos IDS = «» B-26 = «»]]] el código del artículo de ejemplo es B-26 probé con esta otra opción [[[productos ids = «B-26» columnas = «2» orden = «asc» orderby = «fecha»]]] en el apartado de fecha he de poner algo? , en ambos casos no me sale nada… gracias de antemano por vuestra ayuda.

  11. Lenin Palacios

    Tiene que ser obligatorio en la carpeta del tema que estoy usando? Podría existir la posibilidad de tenerlo en otra carpeta de manera tal que si cambio de tema no se vean afectados los shortcodes? o también, que varios temas utilicen la misma carpeta y no tener que estarlos copiando en cada carpeta del tema?

  12. Mi primer Comentario en tu popular sitio 🙂 lo visito mucho pero nunca he llegado a comentar, gracias por toda la ayuda que brindas, soy nuevo en wordpress y me viene genial..

    Una pregunta, hay forma de usar un shortcode en otra web que también es tuya? no encuentro en ningun lado la forma de hacerlo…

    Muchas Gracias

  13. Gracias Fernando por tus artículos siempre interesantes. Tengo una pregunta ¿Como puedo introducir un shortcode en todos los posts de mi blog, utilizando el tema Avada? Gracias y saludos!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

Ir arriba Ir al contenido