Sinto que devo estar perdendo algo bastante óbvio aqui, mas não consigo fazer o WordPress cooperar.
Estou gerando tags OG do Facebook com uma função. Tudo funciona bem, exceto o trecho.
Desde a depreciação de get_the_excerpt($post->ID)
, existe outra maneira de criar um trecho sem ter que criar um loop totalmente novo? Parece excessivo para mim.
Meu primeiro instinto foi usar apply_filters()
:
$description = apply_filters('the_excerpt', get_post($post->ID)->post_content);
Isso me dá a postagem completa, completa com conteúdo formatado em HTML. Ok, deve estar errado. Então, tentei a próxima idéia lógica:
$description = apply_filters('get_the_excerpt', get_post($post->ID)->post_content);
Sem dados. Agora não há HTML, mas ainda é o post completo (o que é realmente confuso).
Ok sem problemas. Vamos pular todas as coisas chiques e apenas ir para a entrada aparada:
$description = wp_trim_excerpt(get_post($post->ID)->post_content);
Nenhuma mudança.
Então, minha pergunta é a seguinte: o que diabos está acontecendo? Está faltando algo aqui?
Entrei no núcleo do WP para descobrir como the_excerpt()
funciona e parece idêntico à minha chamada:
/**
* Display the post excerpt.
*
* @since 0.71
* @uses apply_filters() Calls 'the_excerpt' hook on post excerpt.
*/
function the_excerpt() {
echo apply_filters('the_excerpt', get_the_excerpt());
}
Tenho algumas perguntas com base em minhas descobertas:
- Por que o filtro não está sendo aplicado conforme o esperado?
- Existe uma maneira de obter o trecho fora do loop sem criar um novo loop?
- Eu sou louco?
Agradecemos antecipadamente por dar uma olhada. Estou bastante perplexo, aqui.
get_the_excerpt()
não é preterido, apenas os parâmetros extras que costumavam ser passados para ele não são mais usados.