Trop paresseux pour ajouter une méta-description à vos articles ? Alors, pourquoi ne pas générer automatiquement une méta-description à partir de votre article WordPress en supprimant tous les shortcodes et balises ? Voici comment faire.
Instructions :
Ajoutez ce code au fichier functions.php de votre thème ou dans un plugin spécifique au site. Assurez-vous d'avoir dans le header.php de votre thème wordpress ou cet extrait ne fonctionnera pas.
function create_meta_desc() {
global $post;
if (!is_single()) { return; }
$meta = strip_tags($post->post_content);
$meta = strip_shortcodes($post->post_content);
$meta = str_replace(array("\n", "\r", "\t"), ' ', $meta);
$meta = substr($meta, 0, 125);
echo "<meta name='description' content='$meta' />";
}
add_action('wp_head', 'create_meta_desc');
Remarque : Si c'est la première fois que vous ajoutez des extraits de code dans WordPress, veuillez consulter notre guide sur la manière de copier / coller correctement des extraits de code dans WordPress, afin de ne pas casser accidentellement votre site.
Si vous avez aimé cet extrait de code, n'hésitez pas à consulter nos autres articles sur le site tels que : Meilleurs constructeurs de pages WordPress (comparés).
Comme mentionné précédemment (aucune idée pourquoi l'auteur ne met pas à jour son erreur), supprimez/remplacez cette partie du code : $meta = strip_shortcodes($post->post_content); par seulement : $meta = strip_shortcodes($meta); sinon cela n'a aucun sens, est incorrect et rend mal sur Google !
Wow, ça a cassé mon site. Dès que vous le mettez dans l'en-tête, vous obtenez un code d'erreur, donc ça ne fonctionne pas. Dommage car c'est exactement ce dont j'avais besoin 🙁
quelle est l'erreur que vous obtenez ?
substr() créera un UTF-8 invalide. Utilisez mb_substr() à la place
// ajouter la balise meta description
function wcs_add_meta_description_tag() {
global $post;
if ( is_single() ) {
$meta = strip_tags( $post->post_content );
$meta = strip_shortcodes( $post->post_content );
$meta = str_replace( array(“\n”, “\r”, “\t”), ‘ ‘, $meta );
$meta = mb_substr( $meta, 0, 125, ‘utf8’ );
echo ” . “\n”;
}
}
add_action( ‘wp_head’, ‘wcs_add_meta_description_tag’ , 2 );
Pensez-vous qu'il serait possible de prendre le contenu H2 d'un article, de limiter le nombre de caractères ou de mots, et de le copier par défaut dans la description ? Merci !
Désolé mon ami, mais voici une correction de cet algorithme :
function create_meta_desc() { global $post; if (!is_single()) { return; } $meta = strip_tags($post->post_content); $meta = strip_shortcodes($meta); /* ici, vous devez utiliser la même variable, sinon strip_tags n'aura aucun effet */ $meta = str_replace(array(“n”, “r”, “t”), ‘ ‘, $meta); $meta = substr($meta, 0, 125); echo “”; } add_action(‘wp_head’, ‘create_meta_desc’);
[…] [Source : WpSnipp] […]
ont des balises HTML !
Je ne suis pas sûr de ce que vous voulez dire ? cependant les balises HTML sont supprimées à l'aide de "strip_tags"
non, ce n'est pas le cas. j'ai dû ajouter un strip_tags juste avant la fonction substr(), cela a fonctionné