Aplicar filtro a la salida de shortcode de WordPress

1 minuto de lectura

Me gustaría modificar la salida de shortcode de un complemento de WordPress.

He probado lo siguiente:

$myShortcode = do_shortcode('[print_responsive_thumbnail_slider id="1"]');
echo apply_filters('new_shortcode_filter',$myShortcode);


add_filter('new_shortcode_filter','new_shortcode_filter_callback');

function new_shortcode_filter_callback($myShortcode){
    //modify content right here

    return $modifiedContent;
}

Desafortunadamente, el filtro no se aplica en la salida del shortcode.

Si lo hago así para anular el shortcode y modificar la salida, habrá un bucle infinito causado por la función do_shortcode:

function update_shortcode_slider_content() {
    $sliderContent = do_shortcode('[print_responsive_thumbnail_slider id="1"]');;
    //some magic

    return $modifiedSliderContent;
}
add_shortcode('print_responsive_thumbnail_slider', 'update_shortcode_slider_content');

¿Hice algo mal o hay otra forma mejor de modificar la salida de un shortcode?

  • Intenta agregar tu filtro antes de aplicarlo

    –Chris Haas

    7 dic 2015 a las 15:49

  • Gracias. Ahora el filtro se aplica en el código abreviado, pero la salida del código abreviado modificado ahora se agrega en la parte superior de la página y todavía existe la salida del código abreviado sin modificar en la posición correcta. Solo quiero tener la salida modificada en mi página en la posición correcta. ¿Podría por favor decirme cómo lograr esto?

    – Ph4nt0m

    8 de diciembre de 2015 a las 7:35

WordPress 4.7 introdujo un nuevo filtro, do_shortcode_tag, para hacer exactamente esto. https://www.shawnhooper.ca/2017/01/do-shortcode-tag/

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad