Extracto automático en la meta descripción
-
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!
-
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!
SaludosSegú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 7 años, 2 meses 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.¿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 conthe_excerpt();
. -
Sí funciona cuando hemos editado un extracto desde el backend, siendo limpio el contenido de
get_the_excerpt();
y «salvaje» el contenido dethe_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 7 años, 2 meses por SerGi.
Cierto, el enlace es de hace 6 años, era difícil que funcionara.
Saludos
- El debate ‘Extracto automático en la meta descripción’ está cerrado a nuevas respuestas.