คำถามติดแท็ก plugin-development

WordPress Plugins ช่วยให้การปรับเปลี่ยนการปรับแต่งและการปรับปรุงให้กับบล็อก WordPress ง่ายขึ้น แทนที่จะเปลี่ยนการโปรแกรมหลักของ WordPress คุณสามารถเพิ่มฟังก์ชันการทำงานด้วย WordPress Plugins

2
จะตรวจสอบเอกลักษณ์ของคำนำหน้าปลั๊กอินได้อย่างไร
เพื่อหลีกเลี่ยงการชนกับปลั๊กอินอื่น ๆ หนึ่งควรนำหน้าฟังก์ชั่นทั่วโลกทั้งหมดการกระทำและปลั๊กอินด้วยคำนำหน้าที่ไม่ซ้ำกันเช่น: function xyz_function_name() { ... } คำถามคือฉันจะยืนยันได้อย่างไรว่าxyzมีเอกลักษณ์ ตัวอย่างเช่น Yoast SEO ใช้wpseo_ซึ่งฉันสามารถนึกภาพปลั๊กอิน SEO อื่น ๆ ได้อย่างง่ายดายเช่นกัน วิธีที่ดีที่สุดในการค้นหาปลั๊กอิน WordPress ที่มีอยู่สำหรับการชนที่อาจเกิดขึ้นคืออะไร? หรือว่ามี

1
เพิ่มปุ่มย่อปิดตัวเองลงใน TinyMCE ใน WP 4.6
ฉันคุ้นเคยกับการสร้างรหัสย่อที่ปิดตัวเองเช่น: // shortcode function wpse_shortcode_example( $wpse_atts ) { // Attributes $wpse_atts = shortcode_atts( array( 'foo' => 'bar', 'width' => '100%', 'height' => 'auto', ), $wpse_atts, 'wpse' ); // Return return '<embed src="' . $wpse_atts['src'] . '" width="' . $wpse_atts['width'] . '" height="' . $wpse_atts['height'] . '"; } add_shortcode( 'wpse', 'wpse_shortcode_example' …

2
ฉันควรใช้ spl_autoload_register () ในปลั๊กอินของฉันหรือไม่
เมื่อฉันใช้ spl_autoload_register ในปลั๊กอินของฉันฉันจะได้รับ: Fatal error: Uncaught exception 'LogicException' with message 'Class wp_atom_server could not be loaded' wp-includes\pluggable-deprecated.php on line 182 ฉันอ่านและพบการแก้ไขต่าง ๆ หนึ่งในนั้นบอกว่าจะไม่ใช้ spl_autoload_register กับ WordPress ถูกต้องหรือไม่ ฉันแน่ใจว่าฉันสามารถหา "แก้ไข" สำหรับข้อผิดพลาด แต่ฉันไม่แน่ใจว่าฉันต้องการทำเช่นนั้นกับการเปิดตัว WP แต่ละครั้ง หากฉันไม่ได้ใช้ฟังก์ชั่น autoload ฉันจะโหลดคลาสได้อย่างไร? นี่คือสิ่งที่แบ่งตอนนี้: spl_autoload_extensions(".php"); spl_autoload_register(); use MyPluginClasses\Student as MS; $student = new MS\Student(); echo $student->sayHello(); ในนักเรียน: …

8
ฉันจะหาทากของปลั๊กอินได้อย่างไร
ฉันสงสัยว่าฉันจะหาตัวบุ้งของปลั๊กอินได้อย่างไร (slug = ชื่อภายในที่ใช้โดย WordPress เพื่อทำการอัปเดตปลั๊กอินและเพื่อพิจารณาว่าปลั๊กอินตัวใดที่ใช้งานอยู่ในปัจจุบัน) โดยปกติจะเป็นชื่อโฟลเดอร์ของปลั๊กอิน แต่หากปลั๊กอินไม่มีโฟลเดอร์ก็จะเป็นชื่อไฟล์ (เช่น hello.php) มีข้อยกเว้นอื่น ๆ อีกไหม? อักขระตัวพิมพ์เล็กและตัวพิมพ์ใหญ่สำคัญหรือไม่ ปลั๊กอินสามารถมีกระสุนแตกต่างจากชื่อโฟลเดอร์หรือไม่? จะเกิดอะไรขึ้นถ้ามีปลั๊กอินชื่อ hello.php และ /hello.php/hello.php อีกอัน?

2
ฉันจะปรับปรุงตัวอย่างข้อความค้นหาของผู้ดูแลระบบนี้เพื่อหลีกเลี่ยงการสร้างผลลัพธ์ซ้ำซ้อนในการค้นหาที่ไม่ใช่เมตาได้อย่างไร
ฉันเล่นกับโค้ดขนาดเล็กซึ่งเพิ่มข้อมูล meta ไปยังการค้นหาของผู้ดูแลระบบ ตัวอย่างที่ดีที่สุดที่ฉันพบถูกเขียนโดยStefano ในคำถามนี้ อย่างไรก็ตามดูเหมือนว่าจะมีข้อผิดพลาดที่น่ารำคาญ 1 ข้อเมื่อค้นหาคำที่ไม่ใช่เมตา นี่คือบางส่วนจากการติดตั้ง dev ท้องถิ่นของฉัน ฉันพิมพ์แบบสอบถาม MySQL 2 รายการลงบนหน้าจอ มุมมองของโพสต์ CPT เดียวที่ฉันใช้ทดสอบ นี่คือรหัสที่ทำงานตามที่คาดไว้และอนุญาตให้ฉันค้นหาข้อมูลเมตาจากผู้ดูแลระบบ น่าเสียดายที่รหัสสร้างรายการซ้ำในการจับคู่ที่ไม่ใช่เมตาในกรณีนี้กับชื่อโพสต์ การคว้าแสดงสถานะการโพสต์ประเภทโพสต์และโพสต์บรรพบุรุษของการหลอก ! การคว้าแสดงสถานะการโพสต์ประเภทโพสต์และโพสต์บรรพบุรุษของคู่ นี่คือรหัสที่ฉันใช้อยู่โดยพื้นฐานแล้วมันก็เหมือนกับของ Stefano แต่ด้วยความพยายามอย่างหยาบของฉันในการทำให้คิวรีทำงาน /* * Search custom fields from admin keyword searches */ function rel_search_join( $join ) { global $pagenow, $wpdb; if ( is_admin() && $pagenow == …

2
ปลั๊กอินประเภทโพสต์ที่กำหนดเอง: ฉันจะวางเทมเพลตที่ไหน?
ฉันกำลังเขียนปลั๊กอินประเภทโพสต์ที่กำหนดเอง ส่วนหนึ่งของฉันฉันกำลังส่งออกไปยังแม่แบบผ่านทางรหัสย่อ แต่ส่วนอื่น ๆ ต้องการเทมเพลตการโพสต์ที่กำหนดเองและฉันก็รู้วิธีใช้ลำดับชั้นของเทมเพลตสำหรับ CPT แต่เทมเพลตที่กำหนดเองนั้นอยู่ในชุดรูปแบบและฉันคิดว่าปลั๊กอินควรมีอยู่ในตัวเองอย่างน้อยก็ต้องเริ่มด้วย ดังนั้นวิธีปฏิบัติที่ดีที่สุดที่นี่คืออะไร เราจะรวมไฟล์เทมเพลตในปลั๊กอิน CPT ได้อย่างไร คุณช่วยชี้ให้ฉันเห็นตัวอย่างที่ดีของการทำสิ่งนี้ได้เป็นพิเศษ? ขอบคุณสำหรับความช่วยเหลือของคุณ.

2
การเพิ่มฟิลด์แบบฟอร์มวิดเจ็ตแบบไดนามิก
ฉันพยายามเพิ่มเขตข้อมูลฟอร์มลงในวิดเจ็ต WordPress แบบไดนามิก ดังนั้นหากผู้ใช้ต้องการเพิ่มวันที่อื่นให้กับกิจกรรมพวกเขาสามารถคลิกปุ่มเพื่อรับฟิลด์เพิ่มเติม คำถามคือ: บันทึกฟิลด์อินพุตที่สร้างใหม่ไปยังฐานข้อมูลของฉันได้อย่างไร ฉันจำเป็นต้องเขียนฟังก์ชั่นอัพเดทแบบกำหนดเองหรือไม่? เคล็ดลับใด ๆ นี่คือลักษณะที่วิดเจ็ต: นี่คือรหัส php ของฉันสำหรับวิดเจ็ต (จนถึงตอนนี้): class Spillelister extends WP_Widget { public function Spillelister() { $widget_options = array ( 'classname' => 'spillelister-widget', 'description' => 'Widget for å illustrere spillelister.'); parent::WP_Widget('spillelister_widget', 'Spilleplan', $widget_options); } // The actual widget user interface public function widget($args, …

1
จำนวนการดาวน์โหลดแสดงสำหรับปลั๊กอินในไดเรกทอรี WordPress.org มีการอัพเดทอัตโนมัติหรือไม่?
ฉันสงสัยว่าจำนวนการดาวน์โหลดที่แสดงในปลั๊กอิน - ไดเรกทอรีมีความสัมพันธ์กับจำนวนของเว็บไซต์จริงโดยใช้ปลั๊กอิน ฉันรู้ว่าบางคนจะดาวน์โหลดและไม่ติดตั้งและคนอื่นอาจดาวน์โหลดหลาย ๆ ครั้ง แต่หากปลั๊กอินได้รับการอัปเดต 5 ครั้งจากแผงควบคุม WP การอัปเดตเหล่านี้รวมอยู่ในภาพรวมการดาวน์โหลดด้วยหรือไม่

1
ปลั๊กอิน API สำหรับการสร้างตารางรายการผู้ดูแลระบบที่ง่ายการจัดการและการส่งออกตาราง MySQL?
ฉันรู้WP_List_Tableชั้นเรียน (ซึ่งช่วยอย่างมากในขณะที่อยู่) อย่างไรก็ตามฉันกำลังมองหาบางอย่างที่มีความสามารถมากขึ้น - รูปแบบของ API ที่คุณสามารถ 'ลงทะเบียน' ตาราง MySQL, การfield_name => labelแปลผ่านและกราฟต์ทั้งหมด (ลิงก์เมนู, การสร้างตาราง, การแบ่งหน้า, การเรียงคอลัมน์) & อาจเป็นไปได้ การส่งออกข้อมูล (CSV ฯลฯ ) ทำเพื่อคุณโดยอัตโนมัติ! ฉันรู้ว่านี่เป็นคำขอที่เฉพาะเจาะจงมากแต่ฉันคิดว่ามันคุ้มค่าที่จะถาม ถ้าใครรู้อะไรที่คล้ายกันจากระยะไกลได้โปรดพูด! Heck ถ้าไม่มีอะไรออกมาในตอนนี้ข้าอาจสร้างมันขึ้นมาเองถ้าสิ่งนี้สร้างความสนใจ ...

4
ความแตกต่างระหว่าง get_bloginfo ('url') และ get_site_url () คืออะไร?
ฉันกำลังพัฒนาปลั๊กอิน ฉันต้องการทราบความแตกต่างระหว่าง get_bloginfo('url'); และ get_site_url(); ฉันได้ผลลัพธ์เดียวกันแล้วอะไรคือความแตกต่าง

2
ลิงก์สัญลักษณ์บนกล่อง dev พร้อมปลั๊กอินและสไตล์
ฉันใช้ mac os x 10.6 กับ xampp http://wp3.1/ เป็น URL ที่ฉันติดตั้ง WordPress เส้นทางทางกายภาพคือ /Users/myUserName/Sites/wp3.1/ ฉันไม่ได้ติดตั้งปลั๊กอินหรือธีมด้วยวิธี "ธรรมชาติ" ผมได้สร้างไดเรกทอรีชื่อ "คอมไพล์" /Users/myUserName/git/ซึ่งตั้งอยู่ใน นี่คือที่เก็บของคอมไพล์ของฉันทั้งหมดอยู่ /Users/myUserName/Sites/wp3.1/wp-content/plugins/เมื่อฉันต้องการที่จะติดตั้งปลั๊กอินผมเพียงแค่สร้างการเชื่อมโยงสัญลักษณ์ใน สิ่งนี้ใช้งานได้ดีสำหรับปลั๊กอินอย่างง่าย แต่หากปลั๊กอินจัดคิวเป็นสไตล์ชีทหรือสคริปต์ URL จะแสดงเป็น: http://wp3.1/wp-content/plugins/Users/myUserName/git/options-framework-plugin/css/colorpicker.css?ver=3.1.1 ฉันจะแก้ไขสิ่งนี้ได้อย่างไร


3
ฉันจะเปลี่ยนผู้เขียนประเภทโพสต์ที่กำหนดเองได้อย่างไร
ฉันสร้างประเภทโพสต์ที่กำหนดเองและต้องสามารถสร้างโพสต์และกำหนดให้กับผู้เขียน การทำเช่นนี้กับโพสต์ทำได้ง่ายเนื่องจากคุณสามารถไปที่หน้าจอแก้ไขจำนวนมากและเปลี่ยนผู้เขียนได้ทันที อย่างไรก็ตามเมื่อฉันพยายามทำด้วยโพสต์ที่กำหนดเองของฉันกล่องผู้เขียนไม่อยู่ที่นั่น ฉันจะเพิ่มฟังก์ชันการทำงานเพื่อเปลี่ยนผู้เขียนประเภทโพสต์ที่กำหนดเองได้อย่างไร แก้ไข: ฉันพบวิธีแก้ปัญหาแล้วดูคำตอบด้านล่าง

2
วิธีเพิ่มตารางฐานข้อมูลดัชนีเป็นปลั๊กอิน
ฉันได้สร้างตารางเพิ่มเติมบางส่วนสำหรับปลั๊กอินที่ฉันกำลังพัฒนาและจำเป็นต้องเพิ่มดัชนีในตารางเหล่านี้ WordPress มีวิธีทำอะไร? การใช้dbDelta()ดูเหมือนจะไม่ทำงานและฉันไม่เห็นข้อผิดพลาดในบันทึก

1
การเพิ่มตัวเลือกเพิ่มเติมให้กับอินสแตนซ์ของรูปภาพ (การตั้งค่าการแสดงผลไฟล์แนบ)
ฉันกำลังพยายามสร้างปลั๊กอินที่ใช้ซ้ำได้ง่ายสำหรับการนำเสนอภาพใน Wordpress 3.9 และดูเหมือนว่าฉันกำลังชนกำแพงอิฐ ฉันต้องการเพิ่มตัวเลือกสองสามตัวให้กับอินสแตนซ์ของภาพ (รายละเอียดภายใต้ "การตั้งค่าการแสดงผลไฟล์แนบ") เช่นเดียวกับช่องทำเครื่องหมายที่ระบุว่า "ตอบสนอง" ที่ปิดการใช้งาน (เป็นสีเทา) ขนาดภาพหล่นลงหรือตัวเลือกสำหรับตำแหน่งหน้ากระดาษคงที่เป็นต้น ใน Media Manager เมื่อเลือก / แทนที่ภาพฉันสามารถเพิ่มฟิลด์ที่กำหนดเองได้โดยใช้attachment_fields_to_editและเป็นตัวกรองพี่น้อง แต่ฟิลด์เหล่านี้แนบกับรูปภาพเอง (หรือวัตถุโพสต์รูปภาพแนบถ้าคุณต้องการ) หากฉันมีภาพเดียวกันสองภาพบนหน้าเว็บพวกเขาจะแบ่งปันค่าเดียวกันกับฟิลด์ที่กำหนดเองของฉัน a) ฟิลด์ข้อความที่กำหนดเองที่ฉันเพิ่มฉันไม่สามารถแนบสิ่งนี้กับอินสแตนซ์อินสแตนซ์ทั้งหมดของรูปภาพเดียวกันแบ่งปันค่านี้ b) นี่คือพื้นที่ที่ฉันต้องการเพิ่มตัวเลือกเนื่องจากทุกสิ่งในที่นี่ดูเหมือนจะทำตามแต่ละอินสแตนซ์ c) แสดงการตั้งค่าการแสดงผลเช่นเดียวกับในหน้าจอก่อนหน้า แต่มีการแสดงที่แตกต่างกันเมื่อคลิก "ดินสอ" ที่ด้านบนของภาพใน Wordpress 3.9 สังเกตว่าตัวเลือกที่กำหนดเองที่กำหนดโดยattachment_fields_to_editไม่ปรากฏบนหน้าจอนี้เลย แม้ว่าฉันจะไม่ได้ใช้สมองอย่างเต็มที่ว่ากระดูกสันหลังทำงานอย่างไรหรือแนวทางปฏิบัติที่ดีที่สุดในการแก้ไขวัตถุ wp.media คือฉันมีความสามารถพอสมควรทั้ง php, js และ googling สำหรับคำตอบ แต่อันนี้ทำให้ฉันนิ่งงันไม่กี่วันตอนนี้ดังนั้นความช่วยเหลือใด ๆ ที่ชื่นชมอย่างมาก ขอบคุณที่อ่าน!

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