¿Demasiado perezoso para añadir una meta descripción a tus artículos? Entonces, ¿por qué no generar automáticamente una meta descripción a partir de tu publicación de WordPress eliminando todos los shortcodes y etiquetas? Aquí te explicamos cómo hacerlo.
Instrucciones:
Agrega este código al archivo functions.php de tu tema o a un plugin específico del sitio. Asegúrate de tener en el header.php de tu tema de wordpress o este fragmento no funcionará.
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');
Nota: Si es la primera vez que agregas fragmentos de código en WordPress, consulta nuestra guía sobre cómo copiar / pegar fragmentos de código correctamente en WordPress, para que no rompas accidentalmente tu sitio.
Si te gustó este fragmento de código, considera echar un vistazo a nuestros otros artículos en el sitio como: Los mejores constructores de páginas de WordPress (comparados).
Como ya se mencionó (no tengo idea de por qué el autor no actualiza su error), elimina/reemplaza esta parte del código: $meta = strip_shortcodes($post->post_content); con solo: $meta = strip_shortcodes($meta); de lo contrario, no tiene sentido y es incorrecto, ¡y se ve terrible en Google!
Vaya, eso rompió mi sitio. Tan pronto como lo pones en el encabezado, obtienes un código de error, por lo que no funciona. Lástima, ya que es exactamente lo que necesitaba 🙁
¿Cuál es el error que obtienes?
substr() creará UTF-8 inválido. Usa mb_substr() en su lugar
// agregar etiqueta 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 );
¿Crees que sería posible tomar el contenido H2 de una publicación, limitar el número de caracteres o palabras, y copiarlo en la descripción por defecto? ¡Gracias!
Lo siento amigo, pero aquí tienes una corrección a este algoritmo:
function create_meta_desc() { global $post; if (!is_single()) { return; } $meta = strip_tags($post->post_content); $meta = strip_shortcodes($meta); /* aquí tienes que usar la misma variable, de lo contrario strip_tags no tendrá ningún efecto */ $meta = str_replace(array(“n”, “r”, “t”), ‘ ‘, $meta); $meta = substr($meta, 0, 125); echo ""; } add_action(‘wp_head’, ‘create_meta_desc’);
[…] [Fuente: WpSnipp] […]
¡tengo ETIQUETAS HTML!
No estoy seguro de a qué te refieres. sin embargo, las etiquetas HTML se eliminan usando “strip_tags”.
no, no lo es. tuve que agregar un strip_tags justo antes de la función substr(), eso funcionó