Habilitar shortcodes para campos personalizados

15 jun 2015, 11:20:28
Vistas: 23.6K
Votos: 3

En esta publicación se explica cómo supuestamente habilitar shortcodes para campos personalizados en WordPress. (Los shortcodes no están habilitados para campos personalizados por defecto.)

Lo que no entiendo es dónde colocar este código:

<?php echo do_shortcode(get_post_meta(get_the_ID(), 'nombre', true)); ?>

Entiendo que tengo que pegar el nombre de mi campo personalizado en el parámetro 'nombre', pero ¿dónde necesito colocar esta línea de código?

Supongo que en el functions.php de la plantilla? No estoy seguro dónde específicamente en ese archivo. No quiero romper nada de mi plantilla.

Cualquier sugerencia es apreciada.

2
Comentarios

Realmente no entiendo lo que estás intentando hacer. Los shortcodes no deberían ejecutarse dentro de un campo personalizado. ¿Por qué necesitas hacer esto? Por cierto, si estás usando do_shortcode(), entonces lo estás haciendo mal.

Pieter Goosen Pieter Goosen
15 jun 2015 11:30:35

Estoy de acuerdo en que es un mal diseño, pero dentro de mi plantilla esta es actualmente la única solución para cierto problema. Necesito poder usar un shortcode dentro de un campo personalizado. Debe ser posible, ¿no?

rails_has_elegance rails_has_elegance
15 jun 2015 11:48:46
Todas las respuestas a la pregunta 1
5
10

Normalmente WordPress no ejecuta los shortcodes que colocas en un campo personalizado.

Por defecto, los Campos Personalizados muestran el valor que ingresas como texto plano, así que si intentas ingresar un shortcode (en el formato [shortcode] VALOR [/shortcode]), terminarás mostrando todo el texto, incluyendo las etiquetas.

Agrega lo siguiente en tu archivo de plantilla, puede ser single.php o page.php:

echo apply_filters('the_content', get_post_meta($post->ID,'NOMBRE_DE_TU_CAMPO_PERSONALIZADO', true));

o...

$shortcode = get_post_meta($post->ID,'NOMBRE_DE_TU_CAMPO_PERSONALIZADO',true);
echo do_shortcode($shortcode); 
15 jun 2015 16:58:25
Comentarios

hm, no puedo hacer que funcione. Debo admitir que no tengo el mejor entendimiento de cómo funciona el framework de WordPress bajo el capó. Probé ambas soluciones que sugeriste, pero ninguna funcionó para mí. Las probé en el archivo page.php de las plantillas y en el archivo single.php. Las pegué al principio dentro de la primera etiqueta php. Tal vez mi plantilla simplemente no puede trabajar con estos códigos. Por cierto: estoy usando el campo personalizado en mi página de blog donde todas las entradas del blog se muestran juntas en un formato de vista previa.

rails_has_elegance rails_has_elegance
15 jun 2015 18:21:28

Los campos personalizados no funcionan correctamente en el Formato de Vista Previa. Debes guardar tu trabajo antes de probar.

Bruno Monteiro Bruno Monteiro
15 jun 2015 20:46:15

-1 Voto negativo No uses shortcode https://kovshenin.com/2013/dont-do_shortcode/

Brad Dalton Brad Dalton
4 ago 2015 11:36:06

@BradDalton El argumento de Kovshenin es que no deberías usar do_shortcode() cuando puedes usar directamente la función de callback del shortcode, por lo que el consejo no aplica a la pregunta actual. ¡Así que estoy contrarrestando tu voto negativo al darle un voto positivo a la respuesta!

Bigue Nique Bigue Nique
7 nov 2018 18:04:31

¿Hay alguna forma de hacer esto sin modificar un archivo de plantilla del tema, por ejemplo a través de un plugin sencillo?

Drewdavid Drewdavid
3 may 2021 01:10:37