ในคลาสปลั๊กอินฉันต้องการให้ฟิลด์ง่าย ๆ สำหรับข้อมูลสาธารณะ: อีเมล, หมายเลขโทรศัพท์, Twitter เป็นต้นสามารถขยายรายการได้
ดูปลั๊กอินข้อมูลติดต่อสาธารณะใน GitHub สำหรับรายละเอียด
เพื่อให้การใช้งานง่ายขึ้นฉันต้องการเสนอรหัสย่อที่พิมพ์ได้ง่าย:
[public_email]
[public_phone]
[public_something]
ข้อแตกต่างเพียงอย่างเดียวคือส่วนที่สอง ฉันไม่ต้องการอาร์กิวเมนต์เพิ่มเติมสำหรับรหัสย่อเนื่องจากข้อผิดพลาดเกิดขึ้นได้ง่าย ดังนั้นฉันลงทะเบียนตัวจัดการรหัสย่อหนึ่งรายการสำหรับฟิลด์ทั้งหมดในคลาสปลั๊กอินของฉัน:
foreach ( $this->fields as $key => $value )
{
add_shortcode( 'public_' . $key, array( $this, 'shortcode_handler' ) );
}
ตอนนี้shortcode_handler()
ต้องทราบรหัสย่อที่ถูกเรียก คำถามของฉันคือ: ฉันจะทำเช่นนี้ได้อย่างไร
วิธีแก้ปัญหาปัจจุบันของฉันคือฟังก์ชั่นอื่น:
protected function current_shortcode()
{
$backtrace = debug_backtrace( DEBUG_BACKTRACE_IGNORE_ARGS );
return $backtrace[3]['args'][0][2];
}
งานนี้ ... the_content()
สำหรับ แต่มันก็ไม่ได้สวยงามและแข็งแกร่ง
ฉันอ่านwp-includes/shortcodes.php
แล้ว แต่ฉันไม่สามารถเห็นได้ในขณะนี้ว่าจะทำอย่างไรดี