ฉันรู้สึกเหมือนขาดสิ่งที่เห็นได้ชัดที่นี่ แต่ดูเหมือนว่าฉันจะไม่สามารถให้ WordPress ร่วมมือกันได้
ฉันกำลังสร้างแท็ก Facebook OG ด้วยฟังก์ชั่น ทุกอย่างทำงานได้ดียกเว้นข้อความที่ตัดตอนมา
เนื่องจากการคัดค้านget_the_excerpt($post->ID)
มีวิธีอื่นในการสร้างข้อความที่ตัดตอนมาโดยไม่ต้องสร้างวงใหม่ทั้งหมดหรือไม่ ดูเหมือนว่ามากเกินไปสำหรับฉัน
สัญชาตญาณแรกของฉันคือการใช้apply_filters()
:
$description = apply_filters('the_excerpt', get_post($post->ID)->post_content);
ที่ให้ฉันโพสต์เต็มพร้อมเนื้อหาในรูปแบบ HTML ตกลงจะต้องผิด ดังนั้นฉันจึงลองความคิดเชิงตรรกะต่อไป:
$description = apply_filters('get_the_excerpt', get_post($post->ID)->post_content);
ไม่มีลูกเต๋า ตอนนี้ไม่มี HTML แต่ก็ยังโพสต์แบบเต็ม (ซึ่งสร้างความสับสนจริงๆ)
ได้ไม่มีปัญหา. ให้ข้ามสิ่งที่แฟนซีทั้งหมดและไปที่รายการที่ถูกตัด:
$description = wp_trim_excerpt(get_post($post->ID)->post_content);
ไม่มีการเปลี่ยนแปลง.
ดังนั้นคำถามของฉันคือสิ่งนี้เกิดอะไรขึ้นห่า? มีบางอย่างที่ฉันหายไปไหม
ฉันเข้าสู่ WP core เพื่อค้นหาวิธีการthe_excerpt()
ทำงานและดูเหมือนว่าจะเหมือนกับการโทรของฉัน:
/**
* 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());
}
ฉันมีคำถามสองสามข้อจากการค้นพบของฉัน:
- เหตุใดจึงไม่ใช้ตัวกรองตามที่คาดไว้
- มีวิธีรับข้อความที่ตัดตอนมานอกวงโดยไม่ต้องสร้างวนใหม่หรือไม่
- ฉันบ้าเหรอ?
ขอบคุณล่วงหน้าที่ดู ฉันค่อนข้างนิ่งงันที่นี่
get_the_excerpt()
ไม่ได้เลิกใช้เพียงแค่พารามิเตอร์พิเศษที่เคยถูกส่งไปแล้วเท่านั้นไม่ได้ใช้งานอีกต่อไป