do_shortcode () ภายในหน้าผู้ดูแลระบบ


14

ฉันใช้ปลั๊กอินไม่กี่ตัวที่มีรหัสย่อ ... อย่างไรก็ตามแทนที่จะสร้างหน้าสาธารณะสำหรับเนื้อหาฉันได้สร้างหน้าใหม่บางส่วนภายในผู้ดูแลระบบโดยใช้add_menu_pageและฉันจำเป็นต้องรู้วิธีใช้งานdo_shortcode()ในบริบทนี้

มันยืนฟังก์ชั่นทั้งหมดมันคายสตริง ฉันสมมติว่าเป็นเพราะรหัสย่อ API ไม่สามารถใช้ได้ในหน้าผู้ดูแลระบบ

ฉันจะรับสิ่งนี้ได้อย่างไร ไม่มีเอกสารที่ฉันสามารถหาได้ซึ่งอธิบายวิธีการใช้รหัสย่อภายใน WP Admin ... หรือถ้าเป็นไปได้


โดยเฉพาะฉันพยายามใช้รหัสย่อของ WooCommerce ภายใน WP Admin ฉันเกลียดความจริงที่ว่าปลั๊กอินไม่ได้ใช้ WP Backend สำหรับการจัดการบัญชี / ผู้ใช้


คนใดคนหนึ่งเดินเข้ามาและตัดสินใจว่า "ฉันไม่ได้ทำการวิจัยใด ๆ " และให้คะแนนในเชิงลบโดยที่ฉันไม่ได้แสดงความคิดเห็น
dcolumbus

1
ฉันเดาว่าคุณสามารถบอกได้ว่ารหัสย่อนั้นใช้สำหรับเนื้อหาส่วนหน้า ... คุณพยายามใช้ปลั๊กอินอื่นเพื่อสร้างเนื้อหาสำหรับหน้าผู้ดูแลระบบปลั๊กอินของคุณหรือไม่?
ดาเมียน

@ columbus ฉันเห็นด้วย ฉันเคยเห็น downvotes ปลอม ๆ ไม่กี่เมื่อเร็ว ๆ นี้แน่นอนยิ่งกว่าที่ฉันจำได้ว่าเคยเห็นในอดีต IMO นี้เป็นคำถามที่ตรงไปตรงมา (และยอดเยี่ยมมาก) ดังนั้นตอนนี้ฉันกำลังถูกแทงด้วยคำตอบ;)
TheDeadMedic

หากคุณได้สร้างหน้าผู้ดูแลระบบแล้วคุณสามารถระบุเอาท์พุท - ทำไมคุณต้อง / do_shortcode()ต้องการที่จะใช้ คุณสามารถให้ตัวอย่างได้หรือไม่?
Stephen Harris

พิเศษฉันพยายามใช้รหัสย่อ WooCommerce หน้าการจัดการผู้ใช้และการจัดการบัญชี
dcolumbus

คำตอบ:


10

แทนที่จะเรียกdo_shortcode()เพียงแค่เรียกใช้ฟังก์ชันที่เกี่ยวข้องกับรหัสย่อ

ตัวอย่าง

มีชื่อย่อ[example]และฟังก์ชั่นที่ลงทะเบียนเป็นตัวจัดการรหัสย่อ:

function example_shortcode( $atts = array(), $content = '' )
{
    extract( 
            shortcode_atts( 
            array (
            'before' => '',
            'after' => '',
            ), 
            $atts 
       )
   );

    return $before . $content . $after;
}
add_shortcode( 'example', 'example_shortcode' );

ในหน้าผู้ดูแลระบบของคุณคุณเพียงแค่เรียกใช้ฟังก์ชัน:

echo example_shortcode( 
    array ( 'before' => 'This ', 'after' => '!' ), 
    'works' 
);

ผลลัพธ์: This works!.

do_shortcode()เร็วขึ้นและมีความน่าเชื่อถือกว่า


1
ฉันไม่เคยคิดเรื่องนี้มาก่อน! จากนั้นอีกครั้งฉันจะไม่ใช้รหัสย่อในผู้ดูแลระบบ (ด้วยเหตุผลใดก็ตาม) และมีข้ออ้างในการตรวจสอบ;)
TheDeadMedic

ฉันไม่รู้ว่าทำไมฉันไม่คิดเช่นนี้ ... ฉันจะลองทำและรายงานกลับมา!
dcolumbus

ข้อเสียอย่างหนึ่งของเรื่องนี้ก็คือมันจะพังถ้าผู้เขียนปลั๊กอิน refactors ฟังก์ชั่นการโทรกลับของรหัสในอนาคต การเปลี่ยนแปลงรหัสย่ออาจจะเข้ากันได้ย้อนหลัง แต่มีโอกาสน้อยกว่าที่ชื่อฟังก์ชันภายในของปลั๊กอินจะเป็น
Ian Dunn

2

ดูเหมือนว่ารหัสย่อ API จะพร้อมใช้งานในผู้ดูแลระบบ แต่ผลลัพธ์จะขึ้นอยู่กับแท็กรหัสย่อที่เป็นปัญหา

บิวด์อิน[caption]ทำงานได้ตามที่คาดหวังในขณะที่[embed]ไม่ได้ (นี่เป็นเพราะวิธีการฝังโค้ด API "lazy-load" เป็นรหัสย่อและขึ้นอยู่กับthe_contentตัวกรองที่จะเรียกใช้ดังนั้นในทางเทคนิคแล้วไม่ใช่ความผิดของรหัสย่อ API)

สรุป:มันทั้งหมดขึ้นอยู่กับว่า & เมื่อมีการลงทะเบียนแท็กและสิ่งที่มัน / ถือว่าเมื่อดำเนินการ

@columbus แท็กใดที่เรากำลังพูดถึงในกรณีของคุณ?


1
นอกจากนี้บางแท็กจะคาดหวังว่าget_the_ID()จะส่งคืนรหัสโพสต์
Stephen Harris
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.