• ResueltoModerador almendron

    (@almendron)


    1.- Edito una página o entrada.
    2.- Inserto una imagen
    3.- Copio el código asociado a esa imagen
    4.- Edito el archivo sidebar.php e inserto dicho código.

    Problema: si he puesto leyenda, el shortcode «Caption» aparece literal, es decir, no se muestra la imagen como lo haría dentro de la página o entrada.

    ¿Por qué no reconoce ese shortcode en el sidebar? ¿Hay alguna forma de que lo haga?

    Nota: el motivo de la pregunta es debido a que uso un código desarrollado por mi para mostrar imágenes en el sidebar en función de que se trate una página u otra. Iría más rápido si dicho shortocode funcionara.
    Podéis ver este código en funcionamiento en esta página (y siguientes).

Viendo 6 respuestas - de la 1 a la 6 (de un total de 6)
  • Moderador LGrusin

    (@lgrusin)

    No sé si te he entendido bien, ¿quieres usar el shortcode caption en el sidebar.php?

    Si es así fuera del editor debes usar do_shortcode

    Un saludo

    Moderador almendron

    (@almendron)

    Con do_shortcode ya podría hacerlo así

    Código imagen en el editor:

    [caption id="attachment_2315" align="aligncenter" width="175"]<a class="thickbox" href="xxxxxxxx/egipto-cat-138.jpg"><img class="wp-image-2315 size-thumbnail" src="xxxxxx/egipto-cat-138-175x220.jpg" alt="Texto alternativo" width="175" height="220" /></a> Leyenda[/caption]

    Usando do_shortcode:

    <?php
    
    $imagen1 = '<a class="thickbox" href="xxxxxx/egipto-cat-138.jpg"><img class="wp-image-2315 size-thumbnail" src="xxxxxx/egipto-cat-138-175x220.jpg" alt="Texto alternativo" width="175" height="220" /></a> Leyenda';
    
    echo do_shortcode( '[caption id="attachment_2315" align="aligncenter" width="175"]' . $imagen1 . '[/caption]' ); ?>

    El problema es que así aún me llevaría más tiempo de lo que me cuesta ahora. Lo ideal sería copiar y pegar el código del editor tal cual.

    • Esta respuesta fue modificada hace 6 años por almendron.
    Moderador almendron

    (@almendron)

    Lo que necesitaría, por tanto, sería habilitar de forma global el uso de shortcodes en el sidebar., es decir, algo como add_filter('widget_text','do_shortcode'); pero que sirva para el sidebar en su conjunto y no solo para el widget.

    Moderador LGrusin

    (@lgrusin)

    El shortcode puede funcionar tal como está sin necesidad de usar la variable $imagen1.
    <?php echo do_shortcode('[caption id="attachment_2315" align="aligncenter" width="175"]<a class="thickbox" href="xxxxxxxx/egipto-cat-138.jpg"><img class="wp-image-2315 size-thumbnail" src="xxxxxx/egipto-cat-138-175x220.jpg" alt="Texto alternativo" width="175" height="220" /></a> Leyenda[/caption]'); ?>

    Otras opciones pasan por poner directamente el código HTML que genera el shortcode o hacer un widget y poner el shortcode dentro.

    No se me ocurre otra cosa…

    Un saludo

    Moderador almendron

    (@almendron)

    Pues mira, igual así me sirve. Sería tan solo poner <?php echo do_shortcode(' + código del editor + '); ?>

    Podría preparar la plantilla con el inicio y el final, y luego sería solo pegar el mismo código del editor.

    Lo pruebo y te digo algo.

    Gracias.

    Moderador almendron

    (@almendron)

    Por fin he tenido un poco de tiempo para comprobar 🙂

    Al final me he quedado con el método que usaba. Me da lo mismo hacer una plantilla con <?php echo do_shortcode(' + código del editor + '); ?> que como lo hago ahora. Además, tengo algo más flexibilidad a la hora de aplicar estilos.

    Otra cosa es que se pudiera hacer que se ejecutar el shortcode va para el sidebar en su conjunto, pero como es así… lo dejo tal cual lo tengo.

    Gracias.

Viendo 6 respuestas - de la 1 a la 6 (de un total de 6)
  • El debate ‘Caption imagen en sidebar’ está cerrado a nuevas respuestas.