Preguiçoso demais para adicionar meta descrições aos seus artigos? Então, por que não gerar automaticamente uma meta descrição do seu post do WordPress removendo todos os shortcodes e tags? Veja como fazer isso.
Instruções:
Adicione este código ao arquivo functions.php do seu tema ou a um plugin específico do site. Certifique-se de ter no header.php do seu tema do wordpress ou este trecho não 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');
Observação: Se esta é a primeira vez que você adiciona trechos de código no WordPress, consulte nosso guia sobre como copiar / colar trechos de código corretamente no WordPress, para não quebrar acidentalmente seu site.
Se você gostou deste trecho de código, considere conferir nossos outros artigos no site, como: Melhores Construtores de Páginas do WordPress (Comparados).
Como já mencionado (não sei por que o autor não está atualizando seu erro) remova/substitua esta parte do código: $meta = strip_shortcodes($post->post_content); com apenas: $meta = strip_shortcodes($meta); caso contrário, não faz sentido e está incorreto e fica terrível no Google!
Uau, isso quebrou meu site. Assim que você o coloca no cabeçalho, você recebe um código de erro, então não funciona. Que pena, pois é exatamente o que eu precisava 🙁
Qual é o erro que você recebe?
substr() criará UTF-8 inválido. Use mb_substr() em vez disso
// adiciona a tag 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 );
Você acharia possível pegar o conteúdo H2 de um post, limitar o número de caracteres ou palavras e copiá-lo para a descrição por padrão? Obrigado!
Desculpe, amigo, mas aqui está uma correção para este algoritmo:
function create_meta_desc() { global $post; if (!is_single()) { return; } $meta = strip_tags($post->post_content); $meta = strip_shortcodes($meta); /* aqui você tem que usar a mesma variável, senão o strip_tags não terá efeito */ $meta = str_replace(array(“n”, “r”, “t”), ‘ ‘, $meta); $meta = substr($meta, 0, 125); echo ""; } add_action(‘wp_head’, ‘create_meta_desc’);
[…] [Fonte: WpSnipp] […]
têm TAGS HTML !
Não tenho certeza do que você quer dizer? no entanto, as tags HTML são removidas usando “strip_tags”
não, não é. eu tive que adicionar um strip_tags logo antes da função substr(), isso funcionou