Come mostrare solo le prime parole di X (da ogni post) sulla home page?
Domanda
Come si può avere in modo che la home page del sito mostrerà solo il primo X (diciamo 300) le parole del post?
Ma senza l'utilizzo di estratti tag, o la mano "di più" riempiti? Sto cercando un plugin / hack per WP 2.9 e successivi.
mi sono imbattuto in diverse soluzioni fino ad ora, ma spero per una soluzione consigliata.
Le sfide sono venuto una croce finora:
- Che cosa succede nel caso in cui un tag (ad esempio) inizia sulla parola 295, e termina dopo 301 parola?
- Può essere possibile avere un X diversa per la home page, page tag, pagina di categoria -? E così via
- Può il formato del testo essere conservato? (Tutte le immagini e formattazione del testo)?
- Avere il plugin prendere la minor quantità di ricorsi dal server.
Soluzione
Modifica del conteggio delle parole sulla home page è facile:
if( is_home() )
add_filter( 'excerpt_length', create_function( '', 'return 300;' ) );
Just replicare che il codice e modificare il controllo condizionale per aggiungere questo ad altre pagine. L'altra opzione è quella basta inserire il codice sulla pagina del modello (home.php
, tag.php
, ecc), in modo da sapere che sta per essere impostato sulla pagina corretta.
Utilizzando the_excerpt()
metterà a nudo automaticamente i codici brevi e html dal contenuto se non c'è alcun riassunto in dotazione. È possibile rimuovere questi filtri, ma rende molto più difficile fare i conteggi di parole quando si aggiunge il markup nel mix. Se si desidera che la formattazione / testo / immagini conservate, questo è ciò che il tag more
è per. E 'inserito manualmente perché è troppo difficile da capire automaticamente in tutti i casi in cui la pausa dovrebbe andare.
Altri suggerimenti
È possibile utilizzare la Fancy Estratto plugin per wordpress per questo e modificarlo un po '. Conserva lo stile, lo fa parola di conteggio. Hai solo bisogno di modificare questo un po 'per avere la tua parola-count e forse se non ti piace l'ellissi di modificare il finale pure.
se avete solo bisogno le prime 300 parole del contenuto si può facilmente ottenere con
wp_trim_words( $post->post_content, 300, '');