วิธีการผนวกเข้ากับ the_content โดยใช้ add_filter พร้อมประเภทโพสต์ที่กำหนดเองได้อย่างไร


9

ฉันมีประเภทโพสต์ที่กำหนดเองทำงานได้ดี แต่ข้อความบางส่วนในหน้านั้นเหมือนกันสำหรับทุกโพสต์ดังนั้นฉันต้องการเพิ่มในการใช้ฟังก์ชั่น

ฉันได้ตั้งค่านี้:

function new_default_content($content) {
global $post;
    if ($post->post_type == 'custom-post-type') {
    $content = 'Test text here';
    }
    return $content;
    }
add_filter('the_content', 'new_default_content');

อย่างไรก็ตามเมื่อฉันรีเฟรชหน้าฉันเห็นเฉพาะ "การทดสอบข้อความที่นี่" และไม่ใช่เนื้อหาของโพสต์ (จาก the_content)

ถ้าฉันใส่ความคิดเห็นฟังก์ชั่นนี้เนื้อหาโพสต์จะปรากฏขึ้นอีกครั้ง ผมทำอะไรผิดหรือเปล่า?

คำตอบ:


8

คุณกำลังเขียนทับเนื้อหาทั้งหมดแทนที่จะเขียนต่อท้าย คุณต้องทำอะไรซักอย่าง$content .= 'Test text here';แทน


พลังมากในช่วงเวลานั้นขอบคุณ! คำถามอื่น: ฉันใช้ปลั๊กอินเพื่อแสดงปุ่มโซเชียลของ Like, +1 และอื่น ๆ และปรากฏเหนือเนื้อหาเริ่มต้นใหม่ - มีวิธีทำให้ปุ่มปรากฏด้านล่างหรือไม่ ฉันคิดว่าตัวกรองนี้จะ "chunk" the_content & new_default_content เป็นส่วนที่สมบูรณ์หนึ่งส่วน
George C

1
คุณกำลังต่อท้ายเนื้อหาใหม่ดังนั้นมันจะปรากฏขึ้นในภายหลัง คุณอาจลองใช้ตัวกรองในลำดับความสำคัญที่สูงขึ้นเพื่อดำเนินการก่อนที่ปลั๊กอินจะทำงานเนื่องจากปลั๊กอินใช้ตัวกรองเดียวกัน
helenhousandi

อาฉันจะตรวจสอบสิ่งที่มีความสำคัญ - ขอบคุณอีกครั้ง!
George C

FYI ฉันเล่นรอบกับลำดับความสำคัญและนั่นก็หลอกลวง! ขอขอบคุณอีกครั้ง :)
George C

-1

ด้วยวิธีง่าย ๆ `

               if ($post->post_type == 'custom-post-type') {
                   $new_content= 'Test text here';
                                }
                       return $content.$new_content;

รหัสเท่านั้นไม่ถือว่าเป็นคำตอบที่มีคุณภาพดี คุณควรอธิบายว่าโค้ดทำอะไรและตอบคำถามอย่างไร ด้วยวิธีนี้ผู้อ่านที่เป็นมือใหม่ในการเข้ารหัสจะเข้าใจคำตอบของคุณ คุณอธิบายรหัสของคุณได้ไหม
cybmeta
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.