Soporte » Diseño – Temas y plantillas » Reemplazar extracto por leyenda de imagen destacada

  • ¡Buenas a todos! Espero que estén bien.

    Estoy trabajando con un tema hijo de News Base en la página web que adjunto (aquí).

    En cada post, debajo de la imagen destacada, se muestra el extracto (the_excerpt()) de la publicación, y yo quiero que, como en otros muchos temas, se muestre la leyenda de esa imagen destacada.

    En el archivo content.php, que es el que carga esa info, encuentro estas líneas:
    <?php else : ?><?php the_excerpt(); ?><?php endif ?>
    Deduzco que es ahí dónde lo cambio, pero he probado y nada, siguiendo algunas funciones de la base de desarrolladores. Sigue mostrando el extracto sustituyendo the_excerpt por wp_get_attachment_caption y por the_post_thumbnail_caption. Me quedo sin ideas.

    ¿Se me escapa alguna función?

    Gracias de antemano.

    La página con la que necesito ayuda: [accede para ver el enlace]

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

    (@almendron)

    En primer lugar, comentarte que el tema que usas tiene un problema. Hace dos meses que informaron de él pero no han puesto solución: https://wordpress.org/support/topic/error-bootstraps-javascript-requires-jquery-version-1-9-1-or-higher-2/

    De hecho, para las pruebas he tenido que activar jQuery Manager for WordPress porque de otra forma no funcionaba.

    Y respecto a lo que preguntas, no lo acabo de entender muy bien.

    En la página principal aparece la imagen destacada y debajo el título de la entrada.

    En las entradas individuales veo al principio una imagen y debajo un texto. Ese texto: ¿es la leyenda o lo añades tú de otra forma?

    Y por último, en las páginas de archivos lo veo todo bien. Para cada entrada sale una imagen y debajo información diversa incluyendo el título y el texto. Este texto es justamente el que aparece debajo de la imagen en las entradas individuales.

    Iniciador del debate myanesp

    (@myanesp)

    Hola:

    Gracias por la respuesta, no sabía ese error del jQuery, pero no he detectado ningún error en la página, en ningún aspecto. Gracias por informar, estaré pendiente.

    En las entradas individuales veo al principio una imagen y debajo un texto. Ese texto: ¿es la leyenda o lo añades tú de otra forma?

    A eso me refiero: el texto que se muestra es el extracto del artículo, y yo quiero que se muestre la leyenda de esa imagen (el pie de foto, vaya). He intentado sustituir el the_excerpt por las otras dos funciones que listé antes, pero sigue mostrando el extracto.

    No sé si ahora me he explicado mejor.
    Gracias de nuevo.

    Moderador almendron

    (@almendron)

    A ver si te lo puedo mirar porque no es allí donde hay que modificar el código.

    Y otra cosa: detecto errores en la consola:

    Uncaught Error: Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3
        <anonymous> https://tripticum.com/wp-content/themes/news-base/assets/libraries/bootstrap/js/bootstrap.min.js?ver=5.7:6
        <anonymous> https://tripticum.com/wp-content/themes/news-base/assets/libraries/bootstrap/js/bootstrap.min.js?ver=5.7:6
    bootstrap.min.js:6:216

    Instala y activa https://es.wordpress.org/plugins/jquery-manager/

    Después te vas a Herramientas > jQuery Manager y seleccionas la versión «2.2.4.min.js». Avísame cuando lo hayas hecho y vuelvo a mirar la consola.

    Moderador almendron

    (@almendron)

    Ya he encontrado el archivo: «inc/hooks/header-inner-page.php».

    El hecho de que aparezca allí el extracto tiene bastante sentido. La imagen destacada la pone en grande y debajo aparece el extracto que da una idea resumida del artículo en cuestión.

    De hecho, si insertas la imagen destacada en el texto podrás comprobar que añade la leyenda. En esta clase de temas, lo mejor es poner como imagen destacada una que luego no vayas a poner en el texto.

    Si aún así quieres hacer el cambio:

    1) Busca la línea

    $thumb = wp_get_attachment_image_src(get_post_thumbnail_id(get_the_ID()), 'full');

    Y justo debajo pones:

    $leyendaimg = wp_get_attachment_caption ( get_post_thumbnail_id(get_the_ID()) );

    Después en el bloque

    <?php if (has_excerpt()) { ?>
    	<div class="banner-excerpt">
    		<?php the_excerpt(); ?>
    	</div>
    <?php } ?>

    cambias <?php the_excerpt(); ?> por <?php echo $leyendaimg; ?>

    Esto te funcionará siempre y cuando hayas asignado una imagen destacada y hayas cumplimentado el campo «Extracto».

    Mi recomendación es que lo dejes como lo tienes ahora.

    Y también te recomiendo que vayas pensando en cambiar de tema. Tarde o temprano te dará problemas.

    Iniciador del debate myanesp

    (@myanesp)

    Hola de nuevo (y gracias):

    Instala y activa https://es.wordpress.org/plugins/jquery-manager/

    Hecho. Cuando antes te comentaba que no había tenido ningún error es porque tengo desactivado el precargador, que parece ser lo que le da problemas al compañero en el foro del tema. De todas formas, ya está configurado con el 2.2.4.min.js.

    Esto te funcionará siempre y cuando hayas asignado una imagen destacada y hayas cumplimentado el campo «Extracto».

    Gracias, por ahora parece que funciona bien.

    Y también te recomiendo que vayas pensando en cambiar de tema. Tarde o temprano te dará problemas.

    Con esto me dejas un poco regular. Llevamos apenas unos meses funcionando con el tema hijo que trabajé durante otros tantos y pensábamos mantenerlo en el tiempo (es un hobby y no tengo tiempo para tanto). ¿Qué tipo de problemas crees que podrá dar? ¿Se podrán parchear o desactivar las funciones que puedan dar problemas -como el precargador-?

    Gracias de nuevo.

    • Esta respuesta fue modificada hace 3 días por myanesp. Razón: Error en el blockquote
    Moderador almendron

    (@almendron)

    Los errores pueden venir todos por el jQuery ya que las nuevas versiones de WordPress serán cada vez más estrictas. En principio, con el plugin que has instalado deberían resolverse los problemas pero sigo viendo alguno.

    Desactiva el plugin del jQuery e instala en su lugar https://es.wordpress.org/plugins/version-control-for-jquery/

    Luego Ajustes > jQuery Version Control y seleccionas la 2.2.4 (jQuery) y la 3.3.2 (jQuery Migrate).

Viendo 6 respuestas - de la 1 a la 6 (de un total de 6)
  • Debes estar registrado para responder a este debate.