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

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

5
นักพัฒนาซอฟต์แวร์สามารถใช้ปลั๊กอินที่ทำเครื่องหมายว่า“ ไม่อัปเดตในช่วง 2 ปีที่ผ่านมา” ได้หรือไม่
ฉันเจอปลั๊กอิน WordPress สองสามตัวที่http://wordpress.org/extend/plugins/พร้อมคำเตือนนี้: ปลั๊กอินนี้ไม่ได้รับการปรับปรุงในช่วง 2 ปีที่ผ่านมา อาจไม่ได้รับการดูแลหรือสนับสนุนอีกต่อไปและอาจมีปัญหาความเข้ากันได้เมื่อใช้กับ WordPress รุ่นใหม่กว่า มีวิธี "ยอมรับ" หรือ "ยืนยัน" ปลั๊กอินเช่นนี้หรือไม่? ฉันมีหนึ่งปลั๊กอินใน wordpress.org ดังนั้นฉันจึงเข้าใจกระบวนการ กระบวนการที่ถูกต้องในการนำปลั๊กอินเก่าหรือที่ถูกทอดทิ้งอาจเป็นปัจจุบันคืออะไร?

3
จัดคิวสคริปต์ / สไตล์ชีทของวิดเจ็ตใน HEAD ตามเงื่อนไข (เฉพาะเมื่อปรากฏบนหน้า!)
ฉันพยายามโหลดสคริปต์และสไตล์สำหรับวิดเจ็ต WordPress ด้วยเงื่อนไขต่อไปนี้ ... สคริปต์ต้องโหลดใน HEAD (มิฉะนั้นจะแตก) สคริปต์จะต้องโหลดเฉพาะเมื่อวิดเจ็ตแสดงจริง (ค่อนข้างหนัก) ฉันได้ทำการค้นหาบ่อยครั้งและดูเหมือนว่านี่จะเป็นปัญหาที่พบบ่อย (ยังไม่แก้) ... แต่ฉันหวังว่าจะมีใครบางคนที่นี่สามารถแก้ไขปัญหาได้สำเร็จ นี่คือสิ่งที่ดีที่สุดที่ฉันเคยได้รับ ... ต่อไปนี้เป็นวิดเจ็ตง่ายๆที่พิมพ์ข้อความไปยังแถบด้านข้าง มันประสบความสำเร็จในการโหลด jQuery ตามเงื่อนไข (เมื่อวิดเจ็ตปรากฏขึ้นจริง) ... แม้ว่าจะอยู่ในส่วนท้ายเท่านั้น! (หมายเหตุ: อาจใช้งานได้กับ WordPress 3.3เท่านั้นแม้ว่าแฮ็คนี้อาจให้ความเข้ากันได้ย้อนหลัง) class BasicWidget extends WP_Widget { function __construct() { parent::__construct(__CLASS__, 'BasicWidget', array( 'classname' => __CLASS__, 'description' => "This is a basic widget template that outputs …

3
ข้อดีของ API การตั้งค่าคืออะไร
ให้ฉันนำหน้าสิ่งนี้โดยบอกว่าฉันแทบจะไม่เคยทำงานกับ WordPress - ในความเป็นจริงครั้งล่าสุดที่ฉันทำเว็บไซต์ใน WordPress กลับมาในช่วง 2.2 เมื่อวานนี้ฉันทำทุกอย่างยุ่ง ๆ และถามคำถามหลายข้อที่นี่เพื่อพยายามใช้งานปลั๊กอินเมนูพื้นฐาน ตอนนี้ฉันมีปลั๊กอินทำงานได้อย่างสมบูรณ์และทำงานตามที่ฉันคาดไว้ดังนั้นฉันจึงตัดสินใจเปลี่ยนแปลงเล็กน้อยที่นี่และเพิ่มฟังก์ชั่นและความเข้ากันได้รวมถึงการใช้ API การตั้งค่า อย่างไรก็ตามช่วงเวลาสั้น ๆ ในการอ่านบทช่วยสอนเกี่ยวกับ API นี้และฉันค่อนข้างสับสนแล้วความสับสนนี้จะลึกซึ้งยิ่งขึ้นเมื่อฉันอ่านและพยายามใช้ตัวอย่าง - ซึ่งทำให้ยากยิ่งขึ้นโดยความจริงที่ว่าปลั๊กอินของฉันถูกใช้เป็นคลาส . หากฉันทำสิ่งผิดปกติจากสิ่งที่ฉันเข้าใจในการใช้งาน API การตั้งค่าต้องมีการสร้างฟังก์ชั่นใหม่ต่อการตั้งค่า นี่หมายถึงฟังก์ชั่น 3-5 ตัวสำหรับปลั๊กอินเฉลี่ยและสูงสุดถึงร้อยสำหรับปลั๊กอินขั้นสูงเพิ่มเติม ดูเหมือนว่าน่าหัวเราะที่จะเขียนฟังก์ชั่นมากมาย (และพัฒนาระบบการตั้งชื่อเพื่อไม่ให้เกิดความสับสน) เมื่อคุณสามารถนำเข้า$_POSTตัวแปรที่เกี่ยวข้องทั้งหมดลงในอาเรย์และนำไปสู่ความยุ่งเหยิงทั้งหมดได้อย่างง่ายดาย บางทีฉันอาจจะล้าสมัย แต่ถ้ามีบางอย่างที่จะได้รับจากสิ่งนี้ฉันไม่เห็นเหตุผลที่จะเพิ่มจำนวนสามเท่าหรือสี่เท่าของรหัสที่ฉันเขียน นี่คือวิธีที่ฉันจัดการตัวเลือกก่อนพยายามเพิ่มการตั้งค่า API: function __construct() { /* constructor stuff */ $this->options = $this->db_options = get_option( 'de-menu-options' ); if( $this->options …

2
กลยุทธ์ในการสร้างปลั๊กอินโดยใช้ Eclipse
ใครบ้างที่มีประสบการณ์ในการสร้างปลั๊กอิน WordPress โดยใช้ eclipse PDT สถานการณ์ของฉันคือ ฉันต้องสร้างปลั๊กอินที่ขยายปลั๊กอินอื่น (ดูว่าเป็นรุ่นพรีเมี่ยมจากปลั๊กอินอื่น) ฉันได้สร้างโครงการplugin core(ปลั๊กอินดั้งเดิม) แล้วโดยการนำเข้าจากที่เก็บ svn ฉันสร้างไลบรารี eclipse ที่เรียกว่าwordpressและเพิ่มลงในplugin coreโปรเจ็กต์ ฉันสร้างโครงการอื่นplugin extenderซึ่งจะโฮสต์สคริปต์ที่ฉันสร้าง ปัญหาคือจะทดสอบให้เป็น wordpress ได้อย่างง่ายดายโดยไม่ต้องคัดลอกวางโครงการเหล่านั้นด้วยตนเองได้wp-content/pluginsอย่างไร อย่างไรก็ตามมีการคัดลอกไฟล์เหล่านั้นไปโดยอัตโนมัติwp-content/pluginsหรือไม่? หรือพวกคุณมีวิธีแก้ไขปัญหานี้อีกหรือไม่ ตามบันทึกข้างผมทำงานบน Windows 7 mklinkฉันรู้หน้าต่าง อย่างไรก็ตาม htdocs ของฉันในพาร์ติชัน FAT32 และฉันอยู่ในสถานการณ์ที่ฉันต้องใช้ Windows ในเดือนต่อไปนี้

3
จะรวมไฟล์โดยใช้ get_template_part () ในปลั๊กอินได้อย่างไร?
คำถามง่ายๆอาจเป็นไปได้ แต่ฉันกำลังดิ้นรน ในการพัฒนาชุดรูปแบบฉันทำงานกับget_template_part()หลายครั้งและฉันเข้าใจพื้นฐานของมัน แต่เมื่อฉันพัฒนาปลั๊กอินฉันสงสัยว่ามันใช้เพื่อแสดงข้อผิดพลาด: แจ้งให้ทราบล่วงหน้า: การใช้ STYLESHEETPATH ​​คงไม่ได้กำหนด - สันนิษฐานว่า 'STYLESHEETPATH' ใน...\wp-includes\template.phpบรรทัด 407 และ ประกาศ: ใช้ค่าคงที่ TEMPLATEPATH - สันนิษฐานว่า 'TEMPLATEPATH' ใน...\wp-includes\template.phpบรรทัด 410 Googling ปัญหาพบว่ามีการแก้ไขที่รองรับ: ใช้get_template_part()เป็นปลั๊กอิน - การสนับสนุน WordPress แต่นั่นก็เป็นวิธีแก้ปัญหาที่ยิ่งใหญ่ - ฉันสงสัยมัน ฉันคิดว่าไม่ควรซับซ้อนมาก ฉันตรวจสอบคำตอบ WPSEนี้และพบบรรทัดของรหัสนี้: if ( '' === locate_template( 'loop-mycustomposttype.php', true, false ) ) include( 'loop-mycustomposttype.php' ); ที่ไหนมีinclude()ฟังก์ชั่นPHP ตามความรู้ WordPress …

2
ฉันจะกำหนดค่า Docker สำหรับการพัฒนาและปรับใช้ธีมที่กำหนดเองได้อย่างไร
ต้องการปรับปรุงโพสต์นี้หรือไม่? ให้คำตอบโดยละเอียดสำหรับคำถามนี้รวมถึงการอ้างอิงและคำอธิบายว่าทำไมคำตอบของคุณถึงถูกต้อง คำตอบที่ไม่มีรายละเอียดเพียงพออาจแก้ไขหรือลบออกได้ ฉันเริ่มต้นกับนักเทียบท่าและฉันยังใหม่กับการพัฒนา WordPress อย่างมืออาชีพ ฉันต้องการตั้งค่าสภาพแวดล้อมการพัฒนา Docker (บน Mac ของฉัน) เพื่อให้ฉันสามารถพัฒนาธีม WordPress ที่กำหนดเองได้ สมมติว่าคุณเคยทำสิ่งนี้มาก่อนและใช้ Docker อยู่แล้วคุณตั้งค่านี้ได้อย่างไร Dockerfile และ docker-compose.yml ของคุณมีลักษณะอย่างไร ฉันแน่ใจว่าสิ่งนี้เคยทำมาก่อน ฉันจะไม่แปลกใจถ้ามีคำสั่งบรรทัดเดียวที่สามารถตั้งค่านี้ให้คุณได้ อัปเดต:ฉัน จำกัด หัวข้อนี้ให้แคบลงเป็นคำถามต่อไปนี้ ฉันจะกำหนดค่า Docker สำหรับการพัฒนาและปรับใช้ธีมที่กำหนดเองได้อย่างไร

1
เนื้อหาที่อัปโหลดสื่อที่กำหนดเองสำหรับการแทรกรหัสย่อโพสต์ที่กำหนดเอง
ฉันกำลังทำงานกับปลั๊กอินที่สร้างโพสต์ที่กำหนดเองประเภท "ผลงาน" พร้อมกับรหัสย่อเพื่อแทรกในหน้าหรือโพสต์ใด ๆ รหัสย่อคือ: [portfolio option1=“1” option2=“0” option3=“1” ] WP_queryและมันทำงานได้ดีก็แสดงให้เห็นโพสต์ที่กำหนดเองทั้งหมดผ่านทางที่กำหนดเอง แต่ฉันต้องการที่จะไปต่อ สร้างปุ่มที่กำหนดเองถัดจากupload mediaเพื่อสร้างเอาต์พุตรหัสย่อพอร์ตโฟลิโอซึ่งผู้ใช้สามารถเลือกโพสต์ที่จะรวมและกำหนดตัวเลือกทั้งหมด ดังนั้นผลลัพธ์จะเป็น:[portfolio option1=“1” option2=“0” option3=“1” ids=“12,311,432,443,” ] นี่คือรหัสสำหรับปุ่มที่ฉันพบใน media.php ของ wp: add_action( 'media_buttons', array( $this, 'media_buttons' ) ); public function media_buttons($editor_id = 'content') { $post = get_post(); if ( ! $post && ! empty( $GLOBALS['post_ID'] ) ) …

2
จะแยกปลั๊กอินได้อย่างไร?
ฉันต้องการเริ่มคืนสู่ชุมชน แต่การเขียนปลั๊กอินจากศูนย์อยู่ในระดับที่เกินระดับทักษะและความคิดสร้างสรรค์ของฉันเล็กน้อย (หมายถึงฉันไม่ทราบว่าฉันสามารถแก้ไขปัญหาด้วยปลั๊กอินได้อย่างไร! ทุกครั้งที่ฉันนึกถึง สิ่งที่ฉันพบปลั๊กอินหรือ 6 ที่ได้รับการเขียนแล้ว!) อย่างไรก็ตามฉันเพิ่งระบุปลั๊กอินที่ง่ายมากที่ดูเหมือนจะถูกทอดทิ้งตั้งแต่ WP 2.8 และฉันคิดว่าฉันสามารถปรับเปลี่ยนให้เข้ากันได้ 3.1 ฉันถามแล้วดูเหมือนว่าวิธีที่ดีที่สุดในการอัปเดตปลั๊กอินนี้อาจเป็นการแยก ดังนั้นตอนนี้คำถามของฉัน: ฉันจะทำอย่างไร ฉันยังใหม่กับ SVN ดังนั้นฉันจึงไม่แน่ใจว่าจะไปยังไงเริ่มต้นอย่างไร ฯลฯ ใคร ๆ สามารถแนะนำฉันได้บ้าง? :)

4
จำเป็นหรือไม่ที่จะต้องชนรุ่นของปลั๊กอินหากคุณเพิ่งอัปเดตแอตทริบิวต์ "ทดสอบแล้ว"
ฉันมีปลั๊กอินจำนวนหนึ่งที่โฮสต์อยู่บนเซิร์ฟเวอร์ wordpress.org svn ... ด้วยการปล่อย 3.1 ที่สมบูรณ์ฉันต้องการอัปเดตข้อมูล meta "ทดสอบแล้ว" จะไม่มีการเปลี่ยนแปลงการทำงานของรหัสเพียงแค่ข้อมูลเมตา จำเป็นต้องเปลี่ยนหมายเลขการแก้ไขสำหรับการเปลี่ยนแปลงเล็กน้อยหรือไม่?

1
สถานที่ที่ดีที่สุดในการใช้ add_filter อยู่ที่ไหน
ฉันควรใช้ฟังก์ชั่นadd_filterในinitเบ็ดการกระทำของปลั๊กอินหรือเพียงแค่ในสคริปต์ปลั๊กอินหลัก? เนื่องจากบางครั้งฉันพบว่าผู้คนกำลังใช้ตัวกรองทั่วสถานที่และถ้าฉันใส่initเบ็ดมันจะสายเกินไปสำหรับบางกรณี มีคำแนะนำทั่วไปเกี่ยวกับลำดับความสำคัญของaction& filterขอเพื่อให้เรามีรูปแบบโค้ดที่สอดคล้องกันมากขึ้นหรือไม่

6
แหล่งเก็บไฟล์ PHP ที่สร้างโดยปลั๊กอิน / ธีม
มีหลายกรณีที่ปลั๊กอินหรือชุดรูปแบบจำเป็นต้องสร้างไฟล์ php ไว้ที่ใดที่หนึ่งซึ่งสามารถรวมในภายหลังได้ ตัวอย่างเช่นปลั๊กอิน captcha หรือระบบ templating เช่น twig / smarty (ในสถานการณ์ของฉันมันเป็นเครื่องมือเทมเพลตอย่างง่ายสำหรับคอลเลกชันของวิดเจ็ต) ไฟล์นี้ควรสร้างที่ไหน? ที่เดียวที่ฉันนึกได้คือwp-content/uploads/แต่นั่นก็ไม่ถูกต้อง :) ดังนั้นมีสถานที่ที่ปลอดภัยที่คุณสามารถสร้างไฟล์และไม่ต้องกังวลเกี่ยวกับพวกเขาจะถูกลบในการปรับปรุง WordPress / ปลั๊กอิน / ชุดรูปแบบ? ทางออกหนึ่งคือการสร้างธีมลูก / ไดเรกทอรีในไดเรกทอรี themes / plugins ...

4
คุณคิดอย่างไรเกี่ยวกับตัวเลือกปลั๊กอิน / ชุดรูปแบบที่ออกแบบเอง UIs
คุณอาจสังเกตเห็นแนวโน้มของการออกแบบตัวเลือกปลั๊กอิน / ชุดรูปแบบ UIs โดยเฉพาะอย่างยิ่งในเชิงพาณิชย์ (บน CodeCanyon เช่น - กล่องที่กำหนดเอง, แท็บ, หีบเพลง ฯลฯ ) ฉันเองเชื่อว่า UI ควรรวมเป็นหนึ่งตั้งแต่แรกและมันง่ายมากใน WP เพื่อให้บรรลุโดยใช้โครงสร้าง HTML เริ่มต้นของคอร์ + CSS คลาส => ตามคู่มือการจัดแต่งทรงผม อย่างไรก็ตามบางครั้งอาจไม่เพียงพอและนั่นเป็นสาเหตุที่ทำให้มีแนวโน้มดังกล่าว อีกเหตุผลหนึ่งอาจเป็น "การสร้างแบรนด์" หรือเพียงแค่ "ความเย็น" คุณคิดอย่างไรเกี่ยวกับเรื่องนี้? คุณชอบ UIs ที่ออกแบบเองหรือเป็นค่าเริ่มต้นและทำไม ป.ล. เหตุผลหลักที่ฉันถามเรื่องนี้ก็เพราะวันนี้ฉันเริ่มต้นด้วยการพัฒนาปลั๊กอินและฉันพยายามที่จะตัดสินใจเส้นทางที่จะเลือกนี้

5
วิธีการดีบั๊กปลั๊กอินด้วย Xdebug
ฉันสามารถติดตั้งและตั้งค่าได้อย่างง่ายดาย NetBeans 6.9.1 และ Xdebug ในสภาพแวดล้อมท้องถิ่นของฉันอิงตาม PHP 5.3.0 (XAMPP) ปัญหาของฉันในตอนนี้คือต่อไปนี้: ถ้าฉันใส่เบรกพอยต์บน index.php ของ Wordpress หรือไฟล์อื่น ๆ ของคอร์เซ็ต PHP หลัก NetBeans หยุดอย่างถูกต้องในตำแหน่งที่ต้องการ ถ้าฉันใส่เบรกพอยต์ในไฟล์ปลั๊กอินทริกเกอร์การเรียกใช้โค้ด NetBeans จะไม่หยุดแค่นั้น คุณรู้จักวิธีแก้ไขหรือไม่? อัปเดต:ข้อมูลเพิ่มเติมเกี่ยวกับสิ่งที่ฉันกำลังพยายามแก้ไขปัญหา ปลั๊กอินเรียกว่าVanilla Forumsและมีโครงสร้างไฟล์ต่อไปนี้: - plugins - vanilla-forums + assets + nbproject + templates admin.php embed.php functions.php hooks.php plugin.php sso.php widgets.php ผมตั้งจุดพักภายในฟังก์ชั่นที่มีชื่อที่กำหนดไว้ในvf_validate_options functions.phpฉันแน่ใจว่ามีการใช้งานฟังก์ชันนี้ แต่ NetBeans ไม่ได้หยุดอยู่แค่นั้น

2
วิธีเพิ่มเมนูย่อยในเมนูที่สร้างโดย wp_nav_menu โดยใช้ปลั๊กอิน
ฉันมีเมนูที่สร้างขึ้นโดยwp_nav_menuมีลักษณะเหมือน <ul class="nav-menu" id="menu-top-nav"> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-43" id="menu-item-43"><a href="http://www.example.com/item1.com">Item 1</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-44" id="menu-item-44"><a href="http://www.example.com/item2.com">Item 2</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-45" id="menu-item-45"><a href="http://www.example.com/item3.com">Item 3</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-46" id="menu-item-46"><a href="http://www.example.com/item4.com">Item 4</a></li> </ul> ฉันต้องการแก้ไขเมนูด้านบนโดยเพิ่มเมนูย่อยใน "รายการ 3" โดยใช้ปลั๊กอินของฉันดังนั้นด้านล่างคือผลลัพธ์ที่ต้องการ <ul class="nav-menu" id="menu-top-nav"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-43" id="menu-item-43"><a href="http://www.example.com/item1.com">Item …

2
มีเอกสาร Life Cycle Plugin หรือไม่?
มีเอกสารบางอย่างที่อธิบายวงจรชีวิตของปลั๊กอินหรือไม่? ฉันเริ่มปลั๊กอินใหม่ที่มีสไตล์ OOP และฉันเพิ่งค้นพบว่าคลาสหลักของฉันได้รับการติดตั้งจำนวนมาก (ขอบคุณ Xdebug และ Netbeans) ฉันสงสัยว่าทำไมและมันทำให้ฉันรำคาญเพราะฉันกำลังติดตั้งวัตถุ Dropbox-API และฉันไม่คิดว่า WordPress จะทำการติดตั้งคลาสหลักของฉันมากนัก ฉันไม่พบสิ่งใดที่เกี่ยวข้องกับวงจรชีวิตปลั๊กอินใน Codex หรือบน Google

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