web-dev-qa-db-fra.com

Comment afficher uniquement les X premiers mots (de chaque message) sur la page d'accueil?

Comment pouvez-vous l'avoir pour que la page d'accueil du site ne montre que les X premiers mots (disons 300) de la publication?

Mais sans utiliser "plus" tag, ou des extraits remplis à la main? Je cherche un plugin/hack pour WP 2.9 et les versions ultérieures.

J'ai trouvé plusieurs solutions jusqu'à présent, mais j'espère une solution recommandée.

Les défis que j'ai rencontrés jusqu'à présent:

  • Que se passe-t-il si une balise (par exemple) commence sur Word 295 et se termine après Word 301?
  • Peut-il être possible d'avoir un X différent pour la page d'accueil, la page des balises, la page de la catégorie, etc.?
  • Le format du texte peut-il être préservé? (toutes les images et le formatage du texte)?
  • Avoir le plugin prend le moins de recours possible sur le serveur.
1
Tal Galili

Changer le nombre de mots sur la page d'accueil est simple:

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

Il suffit de répliquer ce code et de modifier la vérification conditionnelle pour l'ajouter à d'autres pages. L'autre option consiste à simplement insérer le code sur la page de modèle (home.php, tag.php, etc.), de sorte que vous sachiez qu'il sera défini sur la bonne page.

Utiliser the_excerpt() enlèvera automatiquement les codes courts et html du contenu s'il n'y a pas d'extrait fourni. Vous pouvez supprimer ces filtres, mais cela rend beaucoup plus difficile la comptabilisation de Word lorsque vous ajoutez des balises au mélange. Si vous souhaitez conserver la mise en forme/texte/images, c'est à cela que sert la balise more. Il est inséré manuellement car il est trop difficile de déterminer automatiquement dans tous les cas où cette pause devrait aller.

3
John P Bloch

Vous pouvez utiliser le Fancy Excerpt Plugin pour WordPress et le modifier un peu. Cela préserve le style, fait le décompte de mots. Vous avez juste besoin de le modifier un peu pour avoir votre compte de mots et peut-être que si vous n'aimez pas les ellipsis, modifiez également la fin.

1
hakre

si vous avez juste besoin des 300 premiers mots du contenu, vous pouvez facilement l'obtenir avec

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