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

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

4
ความแตกต่างระหว่าง term_id และ term_taxonomy_id คืออะไร
ชื่อกล่าวมันทั้งหมด ในขณะนี้ใน taxonomies ที่กำหนดเองของฉันฉันได้รับเงื่อนไขโดยใช้ id คำและชื่อ taxonomy คิดว่าคำถามนี้จะถูกถามมาก่อน แต่หาที่ไหนไม่ได้! ดังนั้นแค่คิดว่าฉันถามและดูว่าใครมีคำตอบใด ๆ

4
ปลั๊กอินในไดเรกทอรี symlinked?
เมื่อฉันพัฒนาปลั๊กอินฉันจะทดสอบพวกเขาใน WordPress หลายเวอร์ชันโดยเชื่อมโยงไดเรกทอรีปลั๊กอินของฉันในwp-contentไดเรกทอรีต่างๆ นี้เป็นที่ดีตั้งแต่ฉันมีเพียงเพื่อแก้ไขไฟล์ครั้งเดียว แต่จะแบ่งสร้างสิ่งสำคัญที่จะสร้างการอ้างอิงไปยังแหล่งข้อมูลในปลั๊กอินของฉัน: หมายถึงสถานที่ตั้งปลั๊กอินทางกายภาพไม่ได้เป็นคนใน__FILE__ wp-contentฉันจะแก้ปัญหานี้อย่างไร โครงสร้างไดเรกทอรีของฉันมีลักษณะเช่นนี้: /path/to/wordpress/development/dir/ plugin-development/ monkeyman-rewrite-analyzer/ monkeyman-rewrite-analyzer.php js/ monkeyman-rewrite-analyzer.js versions/ 3.1/ wp-content/ plugins/ monkeyman-rewrite-analyzer เป็น symlink ไปยังปลั๊กอินด้านบน 3.1-multi-dir/ wp-content/ plugins/ monkeyman-rewrite-analyzer เป็น symlink ไปยังปลั๊กอินด้านบน 3.1-multi-domain/ wp-content/ plugins/ monkeyman-rewrite-analyzer เป็น symlink ไปยังปลั๊กอินด้านบน ถ้าฉันต้องการจัดคิวไฟล์ Javascript ฉันควรใช้plugins_url( 'monkeyman-rewrite-analyzer.js', [base file] )แต่การใช้__FILE__ที่นี่จะไม่ทำงานเพราะเส้นทางของไฟล์ที่แท้จริงจะเป็น/path/to/wordpress/development/dir/plugin-development/monkeyman-rewrite-analyzer/monkeyman-rewrite-analyzer.phpเช่นนั้นไม่ใช่/path/to/wordpress/development/dir/versions/*/wp-content/plugins/monkeyman-rewrite-analyzer/monkeyman-rewrite-analyzer.phpดังนั้น WordPress จึงไม่สามารถตัดส่วนแรกออกและสร้าง URL ที่เกี่ยวข้องกับการติดตั้ง WordPress

4
ลบที่เก็บปลั๊กอิน WordPress
ฉันต้องการสร้างปลั๊กอิน WP ดังนั้นฉันจึงขอและคำขอของฉันได้รับการอนุมัติโดย WordPress.org แต่ฉันไม่ต้องการที่จะพัฒนาปลั๊กอินนั้นอีกต่อไป ฉันจะลบที่เก็บถาวรได้อย่างไรหรือร้องขอให้ลบทิ้ง

2
วิธีทำให้การแปลปลั๊กอิน WordPress พร้อมหรือยัง?
วิธีที่ดีที่สุดในการสร้างปลั๊กอินที่พร้อมแปลคืออะไร? มันไม่จำเป็นต้องแปลจากจุดเริ่มต้น แต่ต้องแปลได้อย่างง่ายดายดังนั้นนักพัฒนาเพื่อนจากวัฒนธรรมที่แตกต่างสามารถมีส่วนร่วมกับกระบวนการแปลของปลั๊กอิน

5
“ ข้อผิดพลาด: ไม่พบหน้าตัวเลือก” ในการส่งหน้าการตั้งค่าสำหรับปลั๊กอิน OOP
ฉันกำลังพัฒนาปลั๊กอินโดยใช้ที่เก็บข้อมูลBoilerplate ของ Tom McFarlinเป็นแม่แบบซึ่งใช้วิธีปฏิบัติของ OOP ฉันพยายามหาสาเหตุที่แน่ชัดว่าทำไมฉันจึงไม่สามารถส่งการตั้งค่าของฉันได้อย่างถูกต้อง ฉันได้ลองตั้งค่าแอ็ตทริบิวต์การกระทำเป็นสตริงว่างตามที่แนะนำในคำถามอื่นรอบ ๆ ที่นี่ แต่นั่นไม่ได้ช่วย ... ด้านล่างเป็นการตั้งค่ารหัสทั่วไปที่ฉันใช้ ... แบบฟอร์ม (/views/admin.php): <div class="wrap"> <h2><?php echo esc_html( get_admin_page_title() ); ?></h2> <form action="options.php" method="post"> <?php settings_fields( $this->plugin_slug ); do_settings_sections( $this->plugin_slug ); submit_button( 'Save Settings' ); ?> </form> </div> สำหรับรหัสต่อไปนี้ให้ถือว่าการเรียกกลับทั้งหมดสำหรับ add_settings_field () และ add_settings_section () มีอยู่ยกเว้น 'option_list_selection' คลาสผู้ดูแลระบบปลั๊กอิน (/ …

3
วิธีการจัดเก็บชื่อผู้ใช้และรหัสผ่านไปยัง API ในตัวเลือก wordpress DB?
ขณะนี้ฉันกำลังพัฒนาปลั๊กอินและโอกาสที่ฉันจะปล่อยปลั๊กอินนี้มากกว่าที่เก็บปลั๊กอินสาธารณะเพื่อให้ผู้อื่นสามารถใช้งานได้ ปลั๊กอินจะใช้ API และใช้ API นี้คุณจะต้องส่งชื่อผู้ใช้และรหัสผ่าน ดังนั้นปลั๊กอินของฉันต้องเก็บข้อมูลการเข้าสู่ระบบเหล่านี้ในฐานข้อมูล ฉันไม่ต้องการเก็บสิ่งเหล่านี้ในรูปแบบข้อความธรรมดาแม้ว่า API ต้องการรูปแบบเหล่านี้ในรูปแบบข้อความล้วน ดังนั้นคำถามของฉันคือฉันจะเก็บข้อมูลที่ละเอียดอ่อนเหล่านี้ได้อย่างไร การแฮ็ชออกมาแล้วดังนั้นจึงต้องมีการเข้ารหัสบางประเภท ใน WordPress มีคีย์เฉพาะที่สามารถใช้ซึ่งจะแตกต่างจากบล็อกต่อบล็อกหรือไม่ ฉันควรใช้ฟังก์ชัน php ใดในการเข้ารหัสและถอดรหัส ฉันกำลังมองหาฟังก์ชั่นที่จะทำงานได้ดีกว่าการติดตั้ง WP ทั้งหมด

1
วิธีการแทนที่การกระทำของปลั๊กอินที่มีอยู่ด้วยการกระทำใหม่
ฉันใช้ปลั๊กอิน มันมีแอ็คชั่นแบบนี้ add_action('publish_post', 'old_action'); function old_action($pid) { "code goes here" } } ฉันกำลังเขียนโมดูลสำหรับปลั๊กอินนี้ ดังนั้นฉันต้องแทนที่ฟังก์ชั่นเก่า ๆ ด้วยฟังก์ชั่นแอคชั่นใหม่ของฉัน นี่คือฟังก์ชั่นใหม่ของฉัน function new_action($pid) { "code goes here" } } ฉันต้องการแทนที่ฟังก์ชัน old_action ด้วยฟังก์ชัน new_action โดยใช้ hooks มีใครช่วยฉันบ้าง ขอบคุณ

2
ในบริบทใดที่ปลั๊กอินรับผิดชอบการตรวจสอบข้อมูล / การฆ่าเชื้อ?
ฉันต้องการตรวจสอบให้แน่ใจว่าข้อมูลทั้งหมดในปลั๊กอิน / ชุดรูปแบบของฉันได้รับการจัดการอย่างปลอดภัยก่อนที่จะเข้าสู่ฐานข้อมูลและก่อนที่จะส่งออกไปยังเบราว์เซอร์ ปัญหาของฉันคือมีสถานการณ์ที่ API จัดการการฆ่าเชื้อสำหรับคุณ - เช่นเมื่อบันทึกเขตข้อมูลการโพสต์ - และอื่น ๆ ที่ผู้เขียนปลั๊กอิน / ชุดรูปแบบมีความรับผิดชอบทั้งหมดในการทำเช่น - เมื่อบันทึกการตั้งค่าที่กำหนดเอง สำหรับขอบเขตของคำถามนี้ฉันไม่กังวลเกี่ยวกับการตรวจสอบข้อมูลในระดับโดเมน - เช่นการตรวจสอบว่าฟิลด์ Age บนฟอร์มอยู่ระหว่าง 0 ถึง 120 หรือที่อยู่อีเมลนั้นถูกต้อง ฉันกังวลเกี่ยวกับความปลอดภัยเท่านั้น - เช่นการหลีกเลี่ยงการสืบค้น SQL เพื่อหลีกเลี่ยงการฉีด SQL เมื่อบันทึกลงในฐานข้อมูลหรือฆ่าข้อมูลที่ส่งออกไปยังเทมเพลต HTML เพื่อหลีกเลี่ยง XSS สำหรับการฆ่าเชื้อด้วยเอาท์พุตฉันรู้ว่าคุณจำเป็นต้องใช้ฟังก์ชั่นเช่นesc_html()และesc_attr()เมื่อสะท้อนตัวแปรในเทมเพลต HTML แต่แล้วเมื่อใช้แท็กเทมเพลตล่ะ พวกเขาทั้งหมดสะอาดผลลัพธ์แล้วหรือไม่ ถ้าเป็นเช่นนั้นสำหรับบริบทใด (HTML ทั่วไปแอตทริบิวต์ของแท็ก ฯลฯ ) บางฟังก์ชั่นมีตัวแปรสำหรับบริบทที่แตกต่างกัน (เช่นthe_title_attribute()แต่ส่วนใหญ่ไม่มี สำหรับการฆ่าเชื้ออินพุตฉันรู้ว่าฉันต้องใช้$wpdb->prepare()เมื่อสร้างเคียวรีแบบแมนนวล แต่ถ้าใช้ API การตั้งค่าเพื่อสร้างหน้าการตั้งค่าปลั๊กอินหรือบันทึกเขตข้อมูลเมตาโพสต์สำหรับประเภทโพสต์ที่กำหนดเอง …

3
วิธีการรวมข้อมูลปลั๊กอินกับธีม
ฉันต้องการรับความคิดเห็นเกี่ยวกับแนวทางปฏิบัติที่ดีที่สุดสำหรับการพัฒนาปลั๊กอิน WordPress ที่ให้การรวมธีม เพื่อให้สมเหตุสมผลเมื่อฉันถามคำถามนี้ขอให้ฉันเริ่มด้วยตัวอย่างสมมุติของสถานการณ์ที่ฉันอยากรู้ ลองนึกภาพว่าฉันสร้างปลั๊กอินชื่อ "Discography" รายชื่อจานเสียงบันทึกประเภทโพสต์ที่กำหนดเองสามประเภท: "แบนด์", "อัลบัม" และ "แทร็ก" ปลั๊กอินยังมีกล่องเมตาที่ให้รายละเอียดสำหรับโพสต์แต่ละประเภทรวมถึง taxonomies ที่กำหนดเองเพื่อจัดระเบียบโพสต์แต่ละประเภท โพสต์ประเภทเหล่านี้เชื่อมโยงกับปลั๊กอินโพสต์ 2 โพสต์ ภายในผู้ดูแลระบบผู้ใช้สามารถเพิ่มแบนด์ใหม่ซึ่งสามารถเชื่อมโยงกับอัลบั้มซึ่งในทางกลับกันจะเชื่อมโยงกับแทร็กทั้งหมดซึ่งจะมีข้อมูลอื่น ๆ เพิ่มเข้ามาผ่านทางเมตาบ็อกซ์และ taxonomies ตอนนี้ฉันไม่ต้องการให้ปลั๊กอินนี้เพียงแค่ตั้งค่าผู้ดูแลระบบเพื่อให้ผู้ใช้ป้อนข้อมูลนี้ ฉันต้องการให้แสดงค่าเริ่มต้นสำหรับข้อมูล ผู้ใช้ / นักพัฒนาขั้นสูงจะดีขึ้นหากมีผู้ดูแลระบบนี้เท่านั้น มันจะง่ายพอที่เธอจะคว้าข้อมูลนั้นและใช้ในธีม อย่างไรก็ตามหากไม่มีมุมมองเริ่มต้นปลั๊กอินนี้จะไม่มีประโยชน์สำหรับผู้ใช้ส่วนใหญ่ สำหรับตัวอย่างนี้คุณสามารถแสดงสิ่งต่าง ๆ เช่น (วงเล็บแสดงวิธีที่ข้อมูลสามารถแสดงตามลำดับชั้นของแม่แบบ): วงดนตรี (single-prefix-band.php, single.php, index.php, shortcode) อัลบั้ม (single-prefix-album.php, single.php, index.php, shortcode) แทร็ก (single-prefix-track.php, single.php, index.php, shortcode) รายชื่อวงดนตรี (template-band-list.php, page-band-listing.php, …

2
วิธีการเปลี่ยนรหัสผ่านของผู้ใช้โดยทางโปรแกรม
ฉันกำลังพยายามสร้างหน้าโปรไฟล์ที่แตกต่างกันโดยสิ้นเชิง (ไม่ใช่หน้าที่จัดทำโดย Wordpress) เนื่องจากรูปแบบและความรู้สึกของหน้าโปรไฟล์เริ่มต้นนั้นมีชื่อว่า "Wordpress" สำหรับผู้ใช้ ตอนนี้ฉันประสบความสำเร็จในการนำเสนอหน้าเว็บที่สามารถแก้ไขข้อมูลเมตาของผู้ใช้เช่นชื่อนามสกุลเมืองรหัสไปรษณีย์ ฯลฯ ตอนนี้สิ่งที่ฉันนิ่งงันคือการเปลี่ยนรหัสผ่านของผู้ใช้ มีฟังก์ชั่น wordpress ในตัวหรือไม่ว่า change_user_password ($ user_id, $ new_password)? ฉันประหลาดใจที่ฉันไม่สามารถมองหาสิ่งที่ทำ แย่ลงมาถึงแย่ที่สุดที่ฉันทำUPDATE wp_users SET user_pass = md5($new_password) WHERE ID = $user_idแต่ฉันจะประหลาดใจจริงๆถ้าไม่มีฟังก์ชั่นสำหรับอันนี้

3
การทดสอบหน่วยสำหรับการพัฒนาปลั๊กอิน
ฉันต้องใช้การทดสอบหน่วยสำหรับปลั๊กอินตัวใดตัวหนึ่งของฉัน ฉันเพิ่งออกแบบมันลงในคลาสดังนั้นการทดสอบหน่วยควรใช้ง่ายขึ้นในขณะนี้ กลยุทธ์ที่มีประสิทธิภาพในการทดสอบปลั๊กอินของฉันคืออะไร ฉันต้องการวิธีใช้ฟังก์ชั่นของ WordPress ที่ใช้ในปลั๊กอิน แต่ฉันไม่ควรต้องการไซต์ WordPress ที่ทำงานอยู่ (แค่ทดสอบข้อมูลใน DB AFAIK) ใช่ไหม? ฉันมีเวลาที่ยากลำบากในการหาวิธีเพียงแค่ทดสอบหน่วยปลั๊กอินและไม่ปลั๊กอินในบริบทของเว็บไซต์ ฉันสามารถใช้ Selenium สำหรับสิ่งนี้ได้ แต่ตอนนี้ฉันแค่ต้องการที่จะมุ่งเน้นไปที่การทดสอบฟังก์ชั่นปลั๊กอินของคลาสหน่วยเพื่อที่ฉันจะไม่ทำลายมันในการอัพเดทแต่ละครั้ง

4
ใครคือนักพัฒนาปลั๊กอินที่น่าเชื่อถือที่สุด? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา หมายเหตุ: โปรดให้คะแนนคำถามและคำตอบใด ๆ ที่คุณเห็นว่ามีประโยชน์โดยคลิกที่ลูกศรขึ้นทางด้านซ้ายมือของคำถามหรือคำตอบ มีปลั๊กอินมากมาย ปลั๊กอินใดที่เราเชื่อถือได้ตลอดเวลา โปรดแบ่งปันรายชื่อผู้เขียนปลั๊กอินที่เชื่อถือได้อย่างสมบูรณ์พร้อมกับลิงก์ไปยังหน้าปลั๊กอิน คำถามนี้ถูกสร้างแบบจำลองบนBest Collection of Code สำหรับไฟล์ functions.php ของคุณ

8
ฟังก์ชัน is_plugin_active ไม่มีอยู่
ฉันใช้ WordPress 3.0.5 และทดสอบด้วย 3.1rc4 ในไฟล์ PHP หลักของปลั๊กอินของฉันเมื่อฉันพยายามที่จะเรียก is_plugin_active Call to undefined function is_plugin_active()ฉันได้รับ ฉันสามารถเรียก add_action และ add_filter ฉันควรตรวจสอบ / เปลี่ยนแปลงเพื่อแก้ไขปัญหานี้อย่างไร สิ่งนี้เกิดขึ้นภายในผู้ดูแลระบบในหน้าปลั๊กอิน ที่ด้านบนของไฟล์ปลั๊กอินหลักของฉันฉันมีif (function_exists('is_plugin_active')) {ซึ่งจะส่งกลับเท็จเสมอ ฉันยังไม่เห็นฟังก์ชั่นจากไฟล์ปลั๊กอินหลักของฉันในปลั๊กอินอื่น ๆ (หากมีประโยชน์)

3
จะเปลี่ยนเส้นทางไปยังหน้าการตั้งค่าเมื่อเปิดใช้งานปลั๊กอินได้อย่างไร
ฉันสร้างปลั๊กอินของฉันเอง ทุกอย่างดูเหมือนจะโอเค แต่สิ่งหนึ่งที่ฉันต้องการทำในปลั๊กอินนั้นคือการเปลี่ยนเส้นทางไปยังหน้าการตั้งค่าปลั๊กอินที่เกี่ยวข้องเมื่อมีการเปิดใช้งานปลั๊กอิน ตัวอย่างเช่น: http://www.example.com/wordpress/wp-admin/options-general.php?page=rotator มีวิธีการเปลี่ยนเส้นทางไปยังหน้าที่เกี่ยวข้องในการเปิดใช้งานเช่นด้วยregister_activation_hook?

3
ตะขอ body_class สำหรับหน้าผู้ดูแลระบบ
ตะขอ body_class ดูเหมือนจะทำงานกับหน้าเว็บที่ไม่ใช่ผู้ดูแลระบบเท่านั้น เมื่อฉันทำ add_filter('body_class', 'add_body_classes'); function add_body_classes($classes) { $classes[] = 'myclass'; return $classes; } มีตะขออื่นที่ฉันควรใช้ถ้าฉันต้องการเพิ่มคลาสในเนื้อหาของหน้าผู้ดูแลระบบหรือไม่

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