J'utilise un thème qui a une limite de caractères pour shortpost et affiche à la [...] fin de la limite de caractères.
Je veux supprimer ceci, alors je recherche the_excerpt();
et le remplace par the_content();
Le problème a été résolu avec le contenu normal, mais le problème avec le type de message d’image est toujours présent. <?php the_excerpt(); ?>
indique que lorsque je modifie cette action, mon post-abrégé se comporte comme un message complet et n’est pas lié à la longueur du message.
J'essaie d'ouvrir tous les fichiers PHP dans le thème et à la recherche de mots clés tels que: 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 ne sais pas d’où cela vient.
Mais tout ce que je trouve 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 je dois chercher?
Le codex est votre ami et devrait être votre premier arrêt :-)
Le [...]
est ajouté par the_excerpt()
. Il existe un filtre fourni appelé excerpt_more
qui est spécifiquement inclus pour personnaliser le texte lu après l'extrait.
Pour supprimer le [...]
après le texte de l'extrait, procédez comme suit:
function new_excerpt_more( $more ) {
return '';
}
add_filter('excerpt_more', 'new_excerpt_more');
c'est un 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');
Essayez de créer une nouvelle fonction dans votre functions.php
:
function custom_excerpt() {
$text=preg_replace( "/\\[…\\]/",'place here whatever you want to replace',get_the_excerpt());
echo '<p>'.$text.'</p>';
}
Ensuite, utilisez la nouvelle fonction sur votre page.
Vous devriez ajouter ceci à votre functions.php
function custom_excerpt_more( $more ) {
return '';//you can change this to whatever you want
}
add_filter( 'excerpt_more', 'custom_excerpt_more' );
De plus, l'utilisation de the_excerpt
présente l'avantage de nettoyer automatiquement le contenu et de supprimer toutes les images et autres balises HTML.
Vous pouvez lisez 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 lire plus à ce sujet here