Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

[SOLUCIONADO] Duda: ¿the_excerpt() no respeta los estilos?

Estas en el tema de Duda: ¿the_excerpt() no respeta los estilos? en el foro de WordPress en Foros del Web. Buenos días! Pues...básicamente quería preguntaros eso: ¿la función de wordpress the_excerpt() no respeta los estilos? Tengo varias entradas que muestro primero con the_excerpt(); pero a ...
  #1 (permalink)  
Antiguo 18/07/2013, 01:17
Avatar de madman_18  
Fecha de Ingreso: agosto-2010
Mensajes: 792
Antigüedad: 14 años, 3 meses
Puntos: 14
Pregunta Duda: ¿the_excerpt() no respeta los estilos?

Buenos días!

Pues...básicamente quería preguntaros eso: ¿la función de wordpress the_excerpt() no respeta los estilos?

Tengo varias entradas que muestro primero con the_excerpt(); pero a la hora de mostrarlo no me está cogiendo los estilos del texto (negritas, cursivas, subrayado...) es como si no existiesen, sin embargo usando the_content(); (no me sirve ya que no puedo mostrar todo el contenido) sí me está mostrando el texto tal y como debe (negritas, subrayados...).

¿Alguna idea de por qué puede ocurrir eso?
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, te convertes en algo muy diferente"
  #2 (permalink)  
Antiguo 18/07/2013, 03:50
 
Fecha de Ingreso: julio-2008
Mensajes: 543
Antigüedad: 16 años, 4 meses
Puntos: 56
Respuesta: Duda: ¿the_excerpt() no respeta los estilos?

a mi eso me ha pasado tambien... no recuerdo si es algo que ocurre siempre o no, pero si sé la solución.
en el archivo functions.php de tu theme añade:
Código PHP:
Ver original
  1. /*fix para el excerpt que no hace los saltos de parrafo*/
  2. function improved_trim_excerpt($text) {
  3.         global $post;
  4.         if ( '' == $text ) {
  5.                 $text = get_the_content('');
  6.                 $text = apply_filters('the_content', $text);
  7.                 $text = str_replace('\]\]\>', ']]>', $text);
  8.                 $text = strip_tags($text, '<p>');
  9.                  $excerpt_length = 35; //aqui marca los lo largo que son los excerpts
  10.                
  11.                 $words = explode(' ', $text, $excerpt_length + 1);
  12.                 if (count($words)> $excerpt_length) {
  13.                         array_pop($words);
  14.                         array_push($words, '[...]');
  15.                         $text = implode(' ', $words);
  16.                         $text = force_balance_tags( $text );
  17.                 }
  18.         }
  19.         return $text;
  20. }
__________________
Un saludo! :-)
Quiero ser el primero
  #3 (permalink)  
Antiguo 18/07/2013, 03:50
Avatar de 23r9i0  
Fecha de Ingreso: noviembre-2008
Ubicación: Catalonia
Mensajes: 203
Antigüedad: 16 años
Puntos: 33
Respuesta: Duda: ¿the_excerpt() no respeta los estilos?

the_excerpt elimina todo estilo html ya que se usa para hacer un extracto del post
Si quieres que se mantenga el estilo html o usas algun plugin o te creas tu una pequeña funcion para crear el extracto.
  #4 (permalink)  
Antiguo 18/07/2013, 03:52
 
Fecha de Ingreso: julio-2008
Mensajes: 543
Antigüedad: 16 años, 4 meses
Puntos: 56
Respuesta: Duda: ¿the_excerpt() no respeta los estilos?

ups, me falto un trozo:
Código PHP:
Ver original
  1. remove_filter('get_the_excerpt', 'wp_trim_excerpt');
  2.   add_filter('get_the_excerpt', 'improved_trim_excerpt');
__________________
Un saludo! :-)
Quiero ser el primero
  #5 (permalink)  
Antiguo 18/07/2013, 03:53
Avatar de madman_18  
Fecha de Ingreso: agosto-2010
Mensajes: 792
Antigüedad: 14 años, 3 meses
Puntos: 14
Respuesta: Duda: ¿the_excerpt() no respeta los estilos?

Cita:
Iniciado por 23r9i0 Ver Mensaje
the_excerpt elimina todo estilo html ya que se usa para hacer un extracto del post
Si quieres que se mantenga el estilo html o usas algun plugin o te creas tu una pequeña funcion para crear el extracto.
He probado a hacerlo, pero al recoger el contenido del post y acortarlo (he usado tanto el substr como wp_trim_...no recuerdo exactamente el nombre de esa función ) me desaparece contenido y no sé por qué.

Lo que hacía era recogerlo mediante $post->post_content, se lo asignaba a una variable y trabajaba sobre ella pero nada, siempre me desaparecía contenido que tenía situado posteriormente...
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, te convertes en algo muy diferente"
  #6 (permalink)  
Antiguo 18/07/2013, 03:54
 
Fecha de Ingreso: julio-2008
Mensajes: 543
Antigüedad: 16 años, 4 meses
Puntos: 56
Respuesta: Duda: ¿the_excerpt() no respeta los estilos?

ups, lei demasiado rapido y no me deja editar.... yo creo que el codigo que puse se puede adaptar para que tambien respete las negritas y tal... hum, habrá que darle una pensada :)
__________________
Un saludo! :-)
Quiero ser el primero
  #7 (permalink)  
Antiguo 18/07/2013, 03:57
Avatar de madman_18  
Fecha de Ingreso: agosto-2010
Mensajes: 792
Antigüedad: 14 años, 3 meses
Puntos: 14
Respuesta: Duda: ¿the_excerpt() no respeta los estilos?

Cita:
Iniciado por darchy Ver Mensaje
a mi eso me ha pasado tambien... no recuerdo si es algo que ocurre siempre o no, pero si sé la solución.
en el archivo functions.php de tu theme añade:
Código PHP:
Ver original
  1. /*fix para el excerpt que no hace los saltos de parrafo*/
  2. function improved_trim_excerpt($text) {
  3.         global $post;
  4.         if ( '' == $text ) {
  5.                 $text = get_the_content('');
  6.                 $text = apply_filters('the_content', $text);
  7.                 $text = str_replace('\]\]\>', ']]&gt;', $text);
  8.                 $text = strip_tags($text, '<p>');
  9.                  $excerpt_length = 35; //aqui marca los lo largo que son los excerpts
  10.                
  11.                 $words = explode(' ', $text, $excerpt_length + 1);
  12.                 if (count($words)> $excerpt_length) {
  13.                         array_pop($words);
  14.                         array_push($words, '[...]');
  15.                         $text = implode(' ', $words);
  16.                         $text = force_balance_tags( $text );
  17.                 }
  18.         }
  19.         return $text;
  20. }
He puesto el texto que me comentas, pero me muestra el contenido entero, no lo acorta.

Cuando lo llamo lo hago de la siguiente forma, no sé si es correcto:
Código PHP:
Ver original
  1. improved_trim_excerpt($post->post_content);
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, te convertes en algo muy diferente"
  #8 (permalink)  
Antiguo 18/07/2013, 04:00
Avatar de 23r9i0  
Fecha de Ingreso: noviembre-2008
Ubicación: Catalonia
Mensajes: 203
Antigüedad: 16 años
Puntos: 33
Respuesta: Duda: ¿the_excerpt() no respeta los estilos?

Lo usas mal, http://www.forosdelweb.com/f118/duda...8/#post4472397
Referente a mantener las negritas, etc... con esa misma funcion del compañero puedes descartar mas codigo html en la linea 8, pero sin probar no sabria decirte el resultado
  #9 (permalink)  
Antiguo 18/07/2013, 04:07
Avatar de madman_18  
Fecha de Ingreso: agosto-2010
Mensajes: 792
Antigüedad: 14 años, 3 meses
Puntos: 14
Respuesta: Duda: ¿the_excerpt() no respeta los estilos?

Cita:
Iniciado por 23r9i0 Ver Mensaje
Lo usas mal, http://www.forosdelweb.com/f118/duda...8/#post4472397
Referente a mantener las negritas, etc... con esa misma funcion del compañero puedes descartar mas codigo html en la linea 8, pero sin probar no sabria decirte el resultado
Entonces ¿cómo obtendría el contenido de la página y lo acortaría?

Edito: Vale, ya he encontrado el fallo xDD esto de tener 4 frentes abiertos....jajaja

Pero me sigue sin establecer los estilos que tiene el texto :S
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, te convertes en algo muy diferente"
  #10 (permalink)  
Antiguo 18/07/2013, 04:15
Avatar de madman_18  
Fecha de Ingreso: agosto-2010
Mensajes: 792
Antigüedad: 14 años, 3 meses
Puntos: 14
Respuesta: Duda: ¿the_excerpt() no respeta los estilos?

Cita:
Iniciado por darchy Ver Mensaje
ups, lei demasiado rapido y no me deja editar.... yo creo que el codigo que puse se puede adaptar para que tambien respete las negritas y tal... hum, habrá que darle una pensada :)
darchy, la verdad que el código está genial en cuanto a respetar párrafos y demás, pero lo que son los estilos, no los está respetando.

He supuesto que habría que añadir más cosas con el strip_tags y no solamente el '<p>', pero no funciona
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, te convertes en algo muy diferente"
  #11 (permalink)  
Antiguo 18/07/2013, 04:33
Avatar de madman_18  
Fecha de Ingreso: agosto-2010
Mensajes: 792
Antigüedad: 14 años, 3 meses
Puntos: 14
Respuesta: Duda: ¿the_excerpt() no respeta los estilos?

Ya he encontrado lo que se puede usar en mi caso:
Modificando la línea
Código PHP:
Ver original
  1. $text = strip_tags($text, '<p>');
por esta otra
Código PHP:
Ver original
  1. $text = strip_tags($text, '<p><strong>');
Ya sí me está respetando los estilos (en este caso la negrita) y ya puedo ir modificando más si me ponen alguna otra cosa más de contenido con estilos ;)

Muchas gracias por la ayuda!!! :aplau so:
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, te convertes en algo muy diferente"
  #12 (permalink)  
Antiguo 18/07/2013, 07:04
 
Fecha de Ingreso: julio-2008
Mensajes: 543
Antigüedad: 16 años, 4 meses
Puntos: 56
Respuesta: Duda: ¿the_excerpt() no respeta los estilos?

eheheh sorry, me fui a comer. Me alegro de que te haya funcionado :)
__________________
Un saludo! :-)
Quiero ser el primero

Etiquetas: entradas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:44.