Supprimer plus ou […] texte du court message


8

J'utilise un thème qui a une limite de caractères pour shortpost et s'affiche [...] à la fin de la limite de caractères.

Je veux supprimer cela, donc je recherche the_excerpt();et remplace parthe_content();

Le problème se résout avec un contenu normal mais a toujours un problème avec le type de publication d'image et il y a <?php the_excerpt(); ?>que lorsque je change cela, mon shortpost agit comme une publication complète et ce n'est pas lié à la longueur de la publication.

J'essaie d'ouvrir tous les fichiers PHP dans le thème et de chercher des mots clés comme: limite, longueur, extrait pour trouver où est le code qui définit la longueur de shortpost, même rechercher "[...]" dans tous les fichiers et la langue, mais je Je ne sais pas d'où ça vient.

Mais tout ce que je trouve, c'est une ligne de code dans function.php

if ( ! function_exists( 'string_limit_words' ) ) :
function string_limit_words($str, $limit = 18 , $need_end = false) {
    $words = explode(' ', $str, ($limit + 1));
    if(count($words) > $limit) {
        array_pop($words);
        array_push($words,'...');
    }
    return implode(' ', $words);
}
endif;

Et quand j'augmente 18 rien ne change!

Quel code dois-je rechercher?

Réponses:


19

Le codex est votre ami et devrait être votre premier arrêt :-)

Le [...]est ajouté par the_excerpt(). Il y a un filtre fourni appelé le excerpt_morefiltre qui est spécifiquement inclus pour personnaliser le texte en lire plus après l'extrait

Pour supprimer le [...]texte après l'extrait, vous pouvez procéder comme suit

function new_excerpt_more( $more ) {
    return '';
}
add_filter('excerpt_more', 'new_excerpt_more');

merci pour la réponse, votre code fonctionne bien pour la suppression [...], mais les shortpost sont toujours limités et les mots coupés après certains caractères, je veux agir normalement (tout avant de lire plus de balises sur mon court post)
Arioman

une autre question juste pour les curieux, comment puis-je changer le [...] en autre chose par exemple [plus ...]
Arioman

Vous devriez lire ce post . J'ai couvert tout sur ce post. J'espère que cela aide :-). N'oubliez pas d'accepter ma réponse si elle a aidé à résoudre votre problème.
Pieter Goosen

cela semble supprimer uniquement le lien en savoir plus. Le [...]est toujours là.
Jules

3

Comme d'autres l'ont déjà souligné, l'utilisation du excerpt_morecrochet de filtre est la bonne solution.

Je voulais juste ajouter que vous n'avez pas besoin d'écrire une fonction qui renvoie une chaîne vide. WordPress a quelques fonctions intégrées pour retourner true, false, zero, null, chaîne vide ou tableau vide.

Dans ce cas, nous avons besoin de __return_empty_string ()

Vous pouvez ajouter ce code à votre plugin ou aux fonctions de votre thème.php:

<?php 
// This will add a filter on `excerpt_more` that returns an empty string.
add_filter( 'excerpt_more', '__return_empty_string' ); 
?>

1

c'est du travail pour moi!

function change_excerpt( $text )
{
    $pos = strrpos( $text, '[');
    if ($pos === false)
    {
        return $text;
    }

    return rtrim (substr($text, 0, $pos) );
}
add_filter('get_the_excerpt', 'change_excerpt');

0

Vous devez l'ajouter à votre functions.php

    function custom_excerpt_more( $more ) {
    return '';//you can change this to whatever you want
}
add_filter( 'excerpt_more', 'custom_excerpt_more' );

En outre, l'utilisation the_excerpta l'avantage de nettoyer automatiquement le contenu et de supprimer toutes les images et autres balises HTML.

Vous pouvez en lire plus ici

Si vous souhaitez également modifier la longueur de l'extrait, vous pouvez ajouter cet extrait à votre functions.php:

function custom_excerpt_length( $length ) {
    return 20;//change the number for the length you want
}
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );

Vous pouvez en savoir plus à ce sujet ici


Quelles versions visez-vous, c'est-à-dire avant 2.9 :-)
Pieter Goosen

@PieterGoosen, je suppose que le mauvais.
Tomás Cot

votre code fonctionne bien avec la longueur changeante mais quand j'enlève [...] ce sera moche quand une partie du paragraphe semble manquante ce sera génial si en quelque sorte détecter un paragraphe à la place de la longueur !! // un autre problème avec l'extrait concerne les shortcodes, je ne peux pas mettre de lecteur vidéo ou de diaporama dans mon court message
Arioman

@Arioman, vous pouvez changer le [...] avec un lien qui dit "Continuez à lire", ou ce que vous voulez. Maintenant, si vous voulez que les shortcodes fonctionnent, ce the_excerptn'est pas ce que vous cherchez, vous devez l'ajouter à la question, car les réponses changeront.
Tomás Cot

@ TomásCot merci pour ce guide fantastique. j'ai mis tous les codes (code complet) dans mon function.php et j'ai supprimé $ wpse_excerpt = strip_tags ($ wpse_excerpt, wpse_allowedtags ()); pour accepter toutes les balises, j'utilise le lecteur vidéo en continu pour insérer une vidéo et il génère des codes courts comme: [stream flv = http: //****/clip/shad.m4v embed = false share = false width = 640 height = 360 dock = true controlbar = over bandwidth = high autostart = false responsive = 16: 9 /] mais quand même j'obtiens un texte: * Vidéo: ma vidéo au lieu d'afficher mon lecteur vidéo en shortpost où est mon problème ??
Arioman

0

Essayez de créer une nouvelle fonction dans votre functions.php:

function custom_excerpt() {
 $text=preg_replace( "/\\[&hellip;\\]/",'place here whatever you want to replace',get_the_excerpt());
echo '<p>'.$text.'</p>';
}

Utilisez ensuite la nouvelle fonction sur votre page.


0

'excerpt_more' est un hook WordPress. Il renvoie l'extrait de contenu. Pour supprimer le [...] texte après l'extrait, vous pouvez retourner vide comme ci-dessous ou vos besoins personnalisés. Utilisez ce code sur function.php

function custom_excerpt_more( $excerpt ) {
    return '';
}
add_filter( 'excerpt_more', 'custom_excerpt_more' );
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.