Tôi cảm thấy như tôi phải thiếu một cái gì đó khá rõ ràng ở đây, nhưng dường như tôi không thể khiến WordPress hợp tác.
Tôi đang tạo các thẻ Facebook OG với một chức năng. Tất cả mọi thứ hoạt động tốt, ngoại trừ đoạn trích.
Vì sự phản đối của get_the_excerpt($post->ID)
, có cách nào khác để tạo một đoạn trích mà không phải tạo một vòng lặp hoàn toàn mới không? Nó có vẻ quá mức đối với tôi.
Bản năng đầu tiên của tôi là sử dụng apply_filters()
:
$description = apply_filters('the_excerpt', get_post($post->ID)->post_content);
Điều đó mang lại cho tôi bài viết đầy đủ, hoàn chỉnh với nội dung được định dạng HTML. Được rồi, phải sai. Vì vậy, tôi đã thử ý tưởng hợp lý tiếp theo:
$description = apply_filters('get_the_excerpt', get_post($post->ID)->post_content);
Không có con xúc xắc. Bây giờ không có HTML, nhưng nó vẫn là bài viết đầy đủ (điều này thực sự khó hiểu).
Ổn không có vấn đề. Hãy bỏ qua tất cả những thứ ưa thích và chỉ đi cho mục cắt tỉa:
$description = wp_trim_excerpt(get_post($post->ID)->post_content);
Không thay đổi.
Vì vậy, câu hỏi của tôi là: cái quái gì đang diễn ra vậy? Có cái gì tôi đang thiếu, ở đây?
Tôi đã vào lõi WP để tìm cách the_excerpt()
hoạt động và nó dường như giống hệt với cuộc gọi của tôi:
/**
* 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());
}
Tôi có một vài câu hỏi dựa trên những phát hiện của tôi:
- Tại sao bộ lọc không áp dụng như mong đợi?
- Có cách nào để lấy đoạn trích bên ngoài vòng lặp mà không tạo vòng lặp mới không?
- Tôi có điên không?
Cảm ơn trước vì đã có một cái nhìn. Tôi khá bối rối, ở đây.
get_the_excerpt()
không bị phản đối, chỉ là thông số phụ đã từng được truyền cho nó không còn được sử dụng nữa.