it-swarm-es.com

¿Cómo mostrar solo las primeras X palabras (de cada publicación) en la página de inicio?

¿Cómo se puede tener para que la página de inicio del sitio solo muestre las primeras X palabras (digamos 300) de la publicación?

¿Pero sin usar la etiqueta "más", o los extractos rellenados a mano? Estoy buscando un plugin/hack para WP 2.9 y en adelante.

Encontré varias soluciones hasta ahora, pero espero una solución recomendada.

Desafíos llegué hasta una cruz:

  • ¿Qué sucede si una etiqueta (por ejemplo) comienza en Word 295 y finaliza después de Word 301?
  • ¿Es posible tener una X diferente para la página de inicio, la página de etiquetas, la página de categoría, etc.?
  • ¿Se puede conservar el formato del texto? (Todas las imágenes y formateo de texto)?
  • Hacer que el plugin tome la menor cantidad de recursos del servidor.
1
Tal Galili

Cambiar la cuenta de palabras en la página de inicio es fácil:

if( is_home() )
  add_filter( 'excerpt_length', create_function( '', 'return 300;' ) );

Simplemente replique ese código y cambie la verificación condicional para agregar esto a otras páginas. La otra opción es simplemente insertar el código en la página de plantilla (home.php, tag.php, etc.), para que sepa que se configurará en la página correcta.

El uso de the_excerpt() eliminará automáticamente los códigos cortos y html del contenido si no se proporciona un extracto. Puede eliminar estos filtros, pero hace que sea mucho más difícil hacer recuentos de palabras cuando está agregando marcas en la mezcla. Si desea conservar el formato/texto/imágenes, para eso es la etiqueta more. Se inserta manualmente porque es demasiado difícil descifrar automáticamente en todos los casos en que debe ir esa ruptura.

3
John P Bloch

Puede usar el Fancy Excerpt Plugin para WordPress para eso y modificarlo un poco. Conserva el estilo, hace conteo de palabras. Solo necesitas modificar esto un poco para que tu recuento de palabras y quizás si no te gusta que la elipsis modifique el final también.

1
hakre

si solo necesita las primeras 300 palabras del contenido, puede obtenerlo fácilmente con

wp_trim_words( $post->post_content, 300, '');
0
Geza Gog