php's strip_tags () não funciona
Pergunta
Estou tentando ajustar um pouco um WordPress, mas estou no nível 0 no PHP, então eu meio que sou péssimo:/
Quero adicionar um botão 'Tweet esse' personalizado (eu sei que já há um gazilhão deles, eu só queria fazer isso sozinho, por diversão)
Então, estou tentando o seguinte:
<a href="http://twitter.com/home?status=<?php strip_tags(the_excerpt()) ?>" >tweet this</a>
the_excerpt () retorna "<p> ... excerpt ... </p>"
e a função Strip_tags não tira aqueles <p>
Tag !
O que eu faço de errado?
Obrigado, e desculpe se é óbvio.
Solução
Seu problema é que the_excerpt()
não retorna seu conteúdo para strip_tags()
, mas o produz diretamente usando echo
. Então strip_tags()
(que precisaria de um anterior echo
A propósito, para fazer qualquer trabalho) não pode fazer nada.
Usar get_the_excerpt () Em vez disso (quebra de linha inserida para clareza, remova quando estiver usando):
<a href="http://twitter.com/home?status=
<?php echo strip_tags(get_the_excerpt()); ?>" >tweet this</a>
A propósito, eu também iria urlencode()
O trecho, você estará fadado a ter problemas, caso contrário, se ele contiver "
Citações duplas ou outros personagens engraçados.
Outras dicas
Isso não parece certo pelo bom senso: <?php strip_tags(the_excerpt()) ?>
, então o documento WP explicou, Doc da API do The_Excerpt, disse que ecoa em vez de devolvê -lo. Bem, use ob_start
para alternativa.
ob_start("callback");
the_excerpt();
$excerpt = ob_get_contents();
?>
<a href="http://twitter.com/home?status=<?php echo strip_tags($excerpt) ?>" >tweet this</a>
<?php
Nota: Não tenho nenhuma experiência da API do WordPress.