Comment Prévenir WordPress à partir de Décapage des Balises HTML dans l'Extrait
Je suis en utilisant wp_trim_words de couper quelques extraits sur ma page d'accueil. Il fonctionne bien sauf que c'est de décapage les balises HTML à partir d'extraits. J'ai besoin d'être en mesure de prendre certains des morceaux de l'extrait gras (à l'aide de <strong>
). En suivant les instructions ici, j'ai essayé de supprimer les wp_trim_words de la fonction et de le remplacer par un nouveau en utilisant le code suivant, qui remplace $text = wp_strip_all_tags( $text );
à partir de l'original WP fonction avec $text = strip_tags($text, '<strong>',);
. Mais cela rompt avec le site. Ce que je fais mal?
//Remove Reverie Trim Words
function remove_trim_words() {
remove_filter('get_the_excerpt', 'wp_trim_words');
add_filter('get_the_excerpt', 'oakwood_trim_words');
}
//Replace Reverie Trim Words
function oakwood_trim_words( $text, $num_words = 55, $more = null ) {
if ( null === $more )
$more = __( '…' );
$original_text = $text;
$text = strip_tags($text, '<strong>',);
/* translators: If your word count is based on single characters (East Asian characters),
enter 'characters'. Otherwise, enter 'words'. Do not translate into your own language. */
if ( 'characters' == _x( 'words', 'word count: words or characters?' ) && preg_match( '/^utf\-?8$/i', get_option( 'blog_charset' ) ) ) {
$text = trim( preg_replace( "/[\n\r\t ]+/", ' ', $text ), ' ' );
preg_match_all( '/./u', $text, $words_array );
$words_array = array_slice( $words_array[0], 0, $num_words + 1 );
$sep = '';
} else {
$words_array = preg_split( "/[\n\r\t ]+/", $text, $num_words + 1, PREG_SPLIT_NO_EMPTY );
$sep = ' ';
}
if ( count( $words_array ) > $num_words ) {
array_pop( $words_array );
$text = implode( $sep, $words_array );
$text = $text . $more;
} else {
$text = implode( $sep, $words_array );
}
/**
* Filter the text content after words have been trimmed.
*
* @since 3.3.0
*
* @param string $text The trimmed text.
* @param int $num_words The number of words to trim the text to. Default 5.
* @param string $more An optional string to append to the end of the trimmed text, e.g. ….
* @param string $original_text The text before it was trimmed.
*/
return apply_filters( 'oakwood_trim_words', $text, $num_words, $more, $original_text );
}
Comment le site de pause?
Il montre juste complètement vide de la page blanche. Pas de contenu du tout.
Il montre juste complètement vide de la page blanche. Pas de contenu du tout.
OriginalL'auteur mcography | 2014-06-10
Vous devez vous connecter pour publier un commentaire.
GUIDE COMPLET DES EXTRAITS
J'ai récemment répondu à quelques questions au sujet des extraits, alors je vais donner une explication détaillée couvrant autant que je le peux.
BALISES HTML DE MISE EN FORME
the_excerpt()
tout d'abord n'est pas à l'exception de tous les paramètres, de sorte que rien ne peut être transmis. Dans est un fait quethe_excerpt()
ajuste le contenu de 55 mots, et de toutes les balises html sont enlevées avant de retourner le texte.the_excerpt()
est situé dans wp-includes/post-template.php. Pour permettre à certaines ou de toutes les balises html dans l'extrait, un nouvel extrait doivent être créés.Tout d'abord, la fonction d'origine doit être retiré en premier, puis la nouvelle fonction doit être raccordé à
get_the_excerpt
. Veuillez prendre note, ce nouvel extrait sera toujours exigible quethe_excerpt()
dans les fichiers de modèle, pas besoin de le changer.get_the_excerpt()
est situé dans wp-includes/post-template.php.L'extrait utilise
wp_trim_excerpt
de retour taillée texte, nous avons donc besoin de supprimerwp_trim_excerpt
d'abord à partir de l'extrait de filtre.wp_trim_excerpt()
est situé dans wp-includes/formatting.php, ligne 2355. C'est de cette façon:Vous pouvez maintenant ajouter votre nouvel extrait de
get_the_excerpt
Pour permettre à des balises html de mise en forme, nous aurons besoin de spécifier les balises que vous aurez besoin pour permettre. Vous pouvez utiliser les éléments suivants
strip_tags
instruction queLe deuxième argument
wpse_allowedtags()
est une petite fonction qui est utilisée pour ajouter les balisesthe_excerpt()
permettra. Pour une liste complète des valide les balises HTML5, aller vérifier ici. Ici est la fonction, ajoutez la balise html à ce que vous avez besoin pour permettre/garderSi vous avez besoin pour permettre à toutes les balises HTML, c'est pas le décapage de toutes les étiquettes, la
strips_tags()
fonction peut être omis ou supprimé complètement.Un point à noter, cependant, que lorsque les balises html sont autorisées, ces balises sont comptés comme des mots, de sorte que votre nombre de mots pour les extraits avec des balises et sans balises ne seront pas les mêmes. Pour corriger cela, vous aurez besoin de supprimer ces balises de la parole réelle compter de la première, de sorte que seuls les mots sont comptés.
J'ai écrit un extrait qui permettra à toutes les balises, de ne compter que des mots que des mots, et de compléter une phrase après la quantité de jeu de mots (ne pas couper le texte milieu d'une phrase) et ajouter un lire la suite du texte après le dernier mot.
Voici le code complet
Vous pouvez simplement supprimer le '//' partir de fonctions que vous avez besoin de plus.
PERSONNALISÉ EXTRAIT LONGUEURS
Parfois, vous avez besoin d'afficher de simples extraits de différentes longueurs et elle n'est pas viable à écrire un extrait pour chaque poste/fonction/page. Voici un joli petit peu de fonction à l'aide de
wp_trim_words
Ce que cette petite fonction ne prend
get_the_excerpt
rognage que pour$limit
définis par l'utilisateur et de retourner le texte avec un lire la suite lien à la fin.Vous pouvez appeler cet extrait comme suivre dans votre modèle
où
$limit
sera votre nombre de mots, donc, un extrait de 30 mot seraJuste une chose à retenir ici, si vous définissez votre limite de plus de 55 mots, seulement 55 mots seront retournés que l'extrait n'est que de 55 mots. Si plus des extraits sont nécessaires, utiliser
get_the_content
à la place.PERSONNALISÉ EXTRAIT LONGUEUR
Si vous avez juste besoin de modifier la longueur de
the_excerpt()
, vous pouvez utiliser la fonction suivanteRappelez-vous, vous aurez besoin de définir une priorité plus grand que 10, de sorte que votre fonction personnalisée s'exécute après le défaut.
AJOUTER LIRE LIEN PLUS
Tout le texte retourné par l'extrait d'avoir la haine
[...]
à la fin qui n'est pas cliquable. Pour ajouter un lire la suite du texte à la place de la hellips, utilisez cette fonctionMODIFIER
Extrait, premier alinéa,
Je veux garder ce complet, voici donc l'extrait qui garnitures après le premier alinéa
Voici une fonction qui conserve des balises HTML dans le tact, ajoute un "Lire la suite" lien à la fin de l'extrait et les garnitures de l'extrait après le premier alinéa.
Dans le cas où je ne veux autoriser les balises html, dois-je brancher la fonction dans functions.php ou dois-je modifier post-template.php et formatting.php?
Oui, tout ce code va dans functions.php sauf indication contraire 🙂
Désolé, mais Ça n'a pas fonctionné pour moi, j'ai ajouter le code dans wp-includes/formatting.php je veux juste montrer les liens que j'ai punt dans l'EXTRAIT de champ sur mon post mais toujours nettoyer la un élément html
OriginalL'auteur Pieter Goosen
Vous ne pouvez pas permettre la mise en forme html dans extrait, comme si le texte de la réduction d'arrêt avant la balise de fermeture il va créer indésirables de mise en forme sur le reste de la page. Pensez bold être appliquée à partir de 20 caractères pour la 1000e de caractère. Si la mise en forme est utilisée, elle appliquera le départ gras balise, mais pas la fin que le texte limite est jusqu'à la 55ème seul caractère.
OriginalL'auteur Roland Sequeira
Essayez d'ajouter ceci à votre functions.php
OriginalL'auteur Arlix