Mostrar solo el contenido antes de la etiqueta more

10 jun 2014, 04:57:55
Vistas: 14.9K
Votos: 10

Estoy usando la plantilla Siren. En homepage.php se usa este código para mostrar el contenido del portafolio

print_excerpt(200);

Pero necesito mostrar solo el contenido antes de <!--more-->

He usado esto:

the_content( $more_link_text, FALSE);

pero no funciona. Muestra todo el contenido

2
Comentarios

Este es un tema premium al que no tenemos acceso

Pieter Goosen Pieter Goosen
10 jun 2014 07:25:52

uso la versión gratuita http://topwpthemes.com/siren/

MajidGh MajidGh
12 jun 2014 03:14:22
Todas las respuestas a la pregunta 2
2
26

Puedes usar la función de WordPress get_extended para obtener las diferentes partes de una cadena (la parte antes y después de la etiqueta <!--more-->). get_extended devuelve un array con tres claves, de las cuales las claves main y extended son importantes: $arr['main'] contiene la parte antes de la etiqueta more, y $arr['extended'] la parte después de la etiqueta more.

Esto daría como resultado algo como:

// Obtener el contenido del post
$content = get_post_field( 'post_content', get_the_ID() );

// Obtener las partes del contenido
$content_parts = get_extended( $content );

// Mostrar la parte antes de la etiqueta <!--more-->
echo $content_parts['main'];
10 jun 2014 11:28:54
Comentarios

Pequeña mejora para ser consistente con la función the_content(): echo apply_filters('the_content', $content_parts['main']);

long long
20 may 2019 16:03:34

Tuve problemas con los filtros de bloques que no se ejecutaban correctamente en $content_parts['extended'], incluso al usar apply_filters('the_content', $content_parts['extended']). La solución fue ejecutar primero $filtered_content = apply_filters('the_content', $content) y luego ejecutar $content_parts = get_extended( $filtered_content ).

Bence Szalai Bence Szalai
20 jul 2023 15:34:13
0

Desafortunadamente, parece que todas las funciones en WordPress que deberían renderizar el extracto (get_extended, get_extended) no aplican las etiquetas HTML ni convierten los retornos de carro en párrafos como se esperaría.

Si necesitas renderizar el extracto con formato, te sugiero que utilices este código:

global $more;
$more_backup = $more;
$more = 0;
the_content('');
$more = $more_backup;

Con esta solución alternativa le estás indicando a la función the_content() que está dentro de un bucle, obteniendo el contenido antes de la etiqueta more.

8 feb 2017 02:52:32