Soporte » WordPress Avanzado » Extracto automático en la meta descripción

  • Resuelto SerGi

    (@sdesergi)


    Buenas,

    Estoy picando un trócito de código para imprimir las meta descripciones. Para el single.php he usado get_the_excerpt(); y funciona solo cuando hay texto en el campo extracto del editor de entradas. No ocurre cuando éste está vació.

    Me gustaria saber cómo puedo recoger el string automático que se crea en las entradas cuando no hay un extracto editado. Y no logro encontrarlo por ahí…

    ¡Gracias!

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

    (@lgrusin)

    Supongo que eso lo hace porque estás fuera del bucle while.

    Tendrías que crearte tu propio excerpt, leyendo el contenido de las entradas y después limitando el texto.

    Quizás te funcione este código
    http://wpsnipp.com/index.php/excerpt/get-the_excerpt-outside-loop/

    Un saludo

    Yo descartaba esa causa, pues get_the_excerpt(); sí muestra el extracto en la meta etiqueta (antes de abrir el LOOP) cuando el extracto está editado. Debo suponer, entonces, que cuando llama a single.php ya cuenta con la ID del post, ¿correcto?

    La duda es recoger el extracto automático generado en los casos en los que el extracto no está editado.

    ¡No sé si me explico!
    Saludos

    Moderador LGrusin

    (@lgrusin)

    Según el CODEX the_excerpt debe ir dentro del Loop. El extracto manual no se ve afectado por esto.

    Como te he dicho la única forma de que funcione un extracto es creándolo tú mismo leyendo the_content, algo así debería funcionar:

    <?php $excerpt = wp_trim_words( $post->post_content, 15 ); 
    echo $excerpt;?>

    Saludos

    • Esta respuesta fue modificada hace 2 semanas, 1 día por  LGrusin.

    Tienes razón en que es raro… porque se supone que get_the_excerpt() te devuelve los n primeros caracteres del artículo si el campo excerpt está vacío.

    get_the_excerpt

    ¿Si le pasas el id del post te devuelve algo? Con el código que te dice @lgrusin lo puedes probar.

    Qué curiosidad…

    Hice pruebas trabajando en local, con wordpress reciente y de 0, plantilla twentyseventeen intacta, sin plugins… Os pongo los resultados:

    • El código del enlace compartido no funciona con get_the_excerpt();. Tampoco con the_excerpt();.
    • Sí funciona cuando hemos editado un extracto desde el backend, siendo limpio el contenido de get_the_excerpt(); y “salvaje” el contenido de the_excerpt();.
    • Con el extracto editado funciona get_the_excerpt(); directamente, sin necesidad de pasarle el ID del post (acordaos que estamos en single.php, aunque el CODEX reza la necesidad de usarlo dentro del LOOP). El resultado es el mismo que si usáramos el código del enlace compartido.
    • Y perdón… Sí funciona el código compartido por LGrusin. ¡Gracias!

    ¡Saludos!

    • Esta respuesta fue modificada hace 1 semana, 6 días por  SerGi.
    Moderador LGrusin

    (@lgrusin)

    Cierto, el enlace es de hace 6 años, era difícil que funcionara.

    Saludos

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