Wydaje mi się, że tutaj brakuje mi czegoś oczywistego, ale wydaje mi się, że nie mogę zmusić WordPress do współpracy.
Generuję tagi OG na Facebooku z funkcją. Wszystko działa dobrze, z wyjątkiem fragmentu.
Czy od czasu wycofania get_the_excerpt($post->ID)
istnieje inny sposób na utworzenie fragmentu bez konieczności tworzenia zupełnie nowej pętli? Wydaje mi się to przesadne.
Moim pierwszym instynktem było użycie apply_filters()
:
$description = apply_filters('the_excerpt', get_post($post->ID)->post_content);
To daje mi pełny post wraz z treścią w formacie HTML. Okej, musi się mylić. Wypróbowałem więc kolejny logiczny pomysł:
$description = apply_filters('get_the_excerpt', get_post($post->ID)->post_content);
Nie ma kości. Teraz nie ma HTML, ale wciąż jest to pełny post (co jest bardzo mylące).
Jasne, nie ma problemu. Pomińmy wszystkie fantazyjne rzeczy i po prostu przejdźmy do przyciętego wpisu:
$description = wp_trim_excerpt(get_post($post->ID)->post_content);
Bez zmiany.
Więc moje pytanie brzmi: co się do cholery dzieje? Czy czegoś tu brakuje?
Wszedłem do rdzenia WP, aby dowiedzieć się, jak the_excerpt()
działa, i wygląda na to, że jest identyczny z moim wywołaniem:
/**
* 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());
}
Mam kilka pytań opartych na moich ustaleniach:
- Dlaczego filtr nie jest stosowany zgodnie z oczekiwaniami?
- Czy istnieje sposób na wyciągnięcie fragmentu poza pętlę bez tworzenia nowej pętli?
- Czy jestem szalony?
Z góry dziękuję za obejrzenie. Jestem dość zakłopotany.
get_the_excerpt()
nie jest przestarzałe, tylko dodatkowy parametr, który był do niego przekazywany, nie jest już używany.