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

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

2
จำเป็นต้องใช้คำนำหน้า $ wpdb-> ในตารางที่กำหนดเองหรือไม่
ขออภัยหากคำถามนี้เล็กน้อย ฉันเพิ่งเริ่มพัฒนาปลั๊กอินใน WordPress ในบทเรียนทั้งหมดที่ฉันพบนี้: ในขณะที่สร้างตารางที่กำหนดเอง$wpdb->prefixถูกนำมาใช้ ตัวอย่าง: $table_name = $wpdb->prefix . "liveshoutbox"; คำถามของฉัน: จำเป็นต้องใช้$wpdb->prefixหรือไม่? จะเกิดอะไรขึ้นถ้าฉันไม่ใช้คำนำหน้าสำหรับตารางที่กำหนดเองของฉัน

4
วิธีเพิ่มการแจ้งเตือนของผู้ดูแลระบบเมื่อทำการบันทึก / อัพเดท
ฉันมีประเภทโพสต์ที่ใช้ post_save เพื่อนำที่อยู่จากโพสต์เมตาและดึงพิกัดละติจูด / ลองจิจูดจาก Google API ฉันต้องการวิธีแจ้งให้ผู้ใช้ทราบหากมีปัญหาในการเรียก coordintes ฉันพยายามใช้ admin_notices แต่ไม่มีสิ่งใดปรากฏขึ้น: public static function update_notice() { echo "<div class='error'><p>Failed to retrieve coordinates. Please check key and address.<p></div>"; remove_action('admin_notices', 'update_notice'); } add_action('admin_notices', array('GeoPost', 'update_notice')); ฉันไม่แน่ใจว่าฉันใช้มันไม่ถูกต้องหรือในบริบทที่ผิด เพื่อความชัดเจนในรหัสจริง add_action อยู่ในฟังก์ชั่นอื่นในชั้นเรียนเดียวกัน มันใช้งานได้ดี

1
ทำไม WordPress เพิ่ม 0 (ศูนย์) ลงในการตอบกลับ Ajax
ถ้าฉันจบฟังก์ชั่นการประมวลผลโดยอาแจ็กซ์exit()หรือdie()ฟังก์ชั่นได้รับอาแจ็กซ์ที่ต้องการและการส่งออกที่ถูกต้อง 0แต่ต่อไปนี้โดย ความคิดใดที่เกิดขึ้น นั่นหมายความว่าเป็นแบบนั้นหรืออาจแก้ไขได้? add_action('wp_ajax_get_homepage', 'get_homepage'); add_action('wp_ajax_nopriv_get_homepage', 'get_homepage'); function get_homepage(){ echo "get_homepage ->"; exit(); } ฉันเคยอ่านที่AJAX ในโปรแกรมเสริมแต่ทำไมถึงจำเป็น?

6
วิธีรวมไฟล์ jQuery และ JavaScript อย่างถูกต้อง?
ฉันทำมันตอนนี้ด้วยรหัสต่อไปนี้: function uw_load_scripts() { // De-register the built in jQuery wp_deregister_script('jquery'); // Register the CDN version wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js', array(), null, false); // Load it in your theme wp_enqueue_script( 'jquery' ); } add_action( 'wp_enqueue_scripts', 'uw_load_scripts' ); ใช้งานได้ แต่ฉันควรทำเช่นนี้สำหรับทุกคนเช่นนี้หรือสำหรับทุกคนยกเว้นผู้ดูแลระบบ (เพื่อให้แบ็กเอนด์ใช้รุ่น WordPress?): if (function_exists('load_my_scripts')) { function load_my_scripts() { if (!is_admin()) { wp_deregister_script( 'jquery' …

1
การส่งแบบฟอร์มปลั๊กอินวิธีปฏิบัติที่ดีที่สุด
ฉันทำการค้นคว้าจำนวนมากและไม่พบสิ่งที่ฉันกำลังมองหาดังนั้นฉันหวังว่าฉันจะชี้ไปในทิศทางที่ถูกต้อง ฉันกำลังพัฒนาปลั๊กอินกิจกรรมที่จะจองตั๋วจากส่วนหน้า สิ่งนี้ไม่แตกต่างจากการส่งแบบฟอร์มอื่น ๆ แต่สิ่งที่ฉันสับสนกับวิธีการจัดการจากปลั๊กอินที่เขียนผ่าน OOP กับคลาส บทความส่วนใหญ่ที่ฉันพบว่าบอกให้วางการจัดการ $ _POST ไว้ในหน้าเทมเพลต เป็นการดีที่ฉันต้องการให้สิ่งนี้จัดการโดยฟังก์ชันภายในปลั๊กอิน สิ่งอื่น ๆ ที่ฉันไม่แน่ใจคือเมื่อคุณส่งแบบฟอร์มในส่วนหน้าวิธีการที่ได้รับจริงผ่านไปยังฟังก์ชั่นในส่วนหลัง ฉันหวังว่าจะสรุปการประมวลผลแบบฟอร์มได้อย่างสมบูรณ์จากรายละเอียดแม่แบบใด ๆ // events.php if ( ! class_exists( 'Events' ) ) { Class Events { function __construct() { add_action( 'plugins_loaded', array( &$this, 'includes' ), 1 ); } function includes() { require_once( EVENTS_INCLUDES . 'functions.php' ); …

3
ข้อบกพร่องด้านความปลอดภัยทั่วไปที่ฉันต้องค้นหามีอะไรบ้าง [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงอภิปรายโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ในฐานะที่เป็นนักพัฒนาปลั๊กอิน WP Wannabe สิ่งที่เป็นข้อบกพร่องด้านความปลอดภัยหลัก / หลุมที่ฉันควรมองหา? ฉันกำลังจะสร้างปลั๊กอินใหม่ที่มีแผงการตั้งค่า (เช่นช่องใส่ของและสิ่งของ) ฉันควรจะกังวลอะไร ตัวอย่างเช่นการฆ่าเชื้อข้อมูลเป็นเรื่องใหญ่มากเนื่องจากอยู่ใน / wp-admin / area ใครบางคนอาจเป็นอันตรายต่อหน้าปลั๊กอินของฉันโดยตรงและส่งคำขอ POST หรืออะไรทำนองนั้น? ขอขอบคุณ!

3
ควรใช้เบ็ดอันใดเพื่อเพิ่มการกระทำที่มีการเปลี่ยนเส้นทาง
ฉันต้องการสร้างปลั๊กอินที่คว้าพารามิเตอร์ URL จากสตริงการสืบค้นเพื่อสร้างสตริงการสืบค้นใหม่สำหรับหน้าเดียวกัน ฉันกำลังติดตามหนังสือการพัฒนาปลั๊กอินมืออาชีพ WordPress ที่ยอดเยี่ยม แต่ฉันไม่แน่ใจว่าจะใช้ตะขอแบบไหนกับการกระทำนี้ นี่คือฟังก์ชั่นการกระทำของฉัน: add_action( 'init', 'tccl_redirect' ); function tccl_redirect() { header ( "Location: http://www.mysite.com/$mypage?$newparam=$newvalue" ); ?> ตะขอใดที่เหมาะสำหรับการเปลี่ยนเส้นทางส่วนหัว

4
ปลั๊กอินของโฟลเดอร์ควรรวมไฟล์ index.php เปล่าหรือไม่
WordPress ในwp-contentโฟลเดอร์นั้นมีไฟล์ PHP เปล่าซึ่งมีหน้าตาแบบนี้ <?php // Silence is golden. ?> ปลั๊กอินควรมีไฟล์ว่างแบบนี้และหยุดดูการดูเนื้อหาของไดเรกทอรีหรือไม่? สิ่งที่เกี่ยวกับโฟลเดอร์เพิ่มเติมในรูปแบบ - เช่นincludesไดเรกทอรีหรือไม่?

3
ทำไมตาราง wp_options` จึงไม่มีดัชนีบน "autoload"
ในตอนต้นของแต่ละหน้าเสิร์ฟโดย WordPress มีการเรียก MySQL เพื่อดึงข้อมูลตัวเลือก: SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes'; เนื่องจากไม่มีดัชนีในautoloadคอลัมน์ MySQL จึงต้องค้นหาแถวทั้งหมด ฉันเจอความคิดเห็นของคำตอบนี้ด้วยว่าจะไม่มีการเพิ่มประสิทธิภาพแม้ว่าจะมีดัชนีก็ตาม ในใบสมัครของฉันฉันใช้ค่าชั่วคราวจำนวนมากเพื่อทำหน้าที่แทนเซสชัน พวกเขาทำงานได้ดีและฉันมีกิจวัตรการเก็บขยะของตัวเอง ผมสังเกตเห็นว่าในwp_optionsตารางค่าชั่วคราวของฉัน (คนที่เริ่มต้นด้วย_transient_) autoload=noทุกคนมี ฉันคาดว่าจำนวนแถวของwp_optionsตารางของฉันจะเพิ่มขึ้นตามจำนวนผู้ใช้ที่เกิดขึ้นพร้อมกันเพิ่มขึ้น ฉันต้องการที่จะรู้ว่าทำไมตารางถูกออกแบบด้วยวิธีนี้ และฉันควรสร้างดัชนีสำหรับกรณีเฉพาะของฉันหรือไม่

1
ตัวเลือกการปรับปรุงที่เก็บอยู่ในอาร์เรย์หลายมิติ
ฉันมีข้อมูลในwp_optionsตารางที่จัดเก็บในปัจจุบันเป็นอาร์เรย์หลายมิติ ( profile_element_order): a:12:{s:17:"img_base64_enable";s:1:"1";s:25:"moulding_combination_page";s:0:"";s:24:"moulding_collection_page";s:0:"";s:25:"idea_gallery_thumb_height";s:3:"200";s:24:"idea_gallery_thumb_width";s:3:"200";s:23:"collection_thumb_height";s:3:"200";s:22:"collection_thumb_width";s:3:"200";s:20:"profile_item_columns";s:1:"4";s:17:"idea_item_columns";s:1:"2";s:24:"collections_item_columns";s:1:"2";s:25:"combinations_item_columns";s:1:"4";s:21:"profile_element_order";a:5:{i:0;s:8:"Option 1";i:1;s:8:"Option 2";i:2;s:8:"Option 3";i:3;s:8:"Option 4";i:4;s:8:"Option 5";}} สิ่งที่ฉันพยายามทำให้สำเร็จคืออัปเดตprofile_element_orderตัวเลือก (ภายในตัวเลือกเหล่านั้น) นี่คือทุกสิ่งที่ดู: function psort_save_order() { global $mouldings_options; $list = $mouldings_options['profile_element_order']; $new_order = $_POST['list_items']; $new_list = array(); // update order foreach($new_order as $v) { if(isset($list[$v])) { $new_list[$v] = $list[$v]; } } // save the new order update_option('profile_element_order', $new_list); die(); } add_action('wp_ajax_psort_update_order', …

10
การพัฒนาปลั๊กอิน WordPress - ส่วนหัวได้ส่งข้อความไปแล้ว
ฉันกำลังพัฒนาปลั๊กอิน WordPress เมื่อฉันเปิดใช้งานปลั๊กอินฉันได้รับข้อความต่อไปนี้: ปลั๊กอินสร้างผลลัพธ์ 293 ตัวอักษรของผลลัพธ์ที่ไม่คาดคิดในระหว่างการเปิดใช้งาน หากคุณสังเกตเห็นข้อความ“ ส่วนหัวที่ส่งไปแล้ว” ปัญหาเกี่ยวกับฟีด Syndication หรือปัญหาอื่น ๆ ให้ลองปิดใช้งานหรือลบปลั๊กอินนี้ ปลั๊กอินทำงานได้ดีมาก แต่ฉันไม่รู้ว่าทำไมฉันถึงได้รับข้อความนี้ ปลั๊กอินของฉันคือ: http://wordpress.org/extend/plugins/facebook-send-like-button/

2
ฉันควรใช้อะไรแทน WP_CONTENT_DIR และ WP_PLUGIN_DIR
เอกสาร WordPress สำหรับการกำหนดปลั๊กอินและไดเรกทอรีเนื้อหาระบุว่า: WordPress ใช้ประโยชน์จากค่าคงที่ต่อไปนี้เมื่อกำหนดพา ธ ไปยังไดเรกทอรีเนื้อหาและปลั๊กอิน ไม่ควรใช้ปลั๊กอินหรือธีมโดยตรง แต่จะแสดงไว้ที่นี่เพื่อความสมบูรณ์ มันจะไปในรายการWP_CONTENT_DIRและWP_PLUGIN_DIRในหมู่ค่าคงที่นักพัฒนาชุดรูปแบบและปลั๊กอินไม่ควรใช้สันนิษฐานว่าเป็นเพราะนี้: WordPress อนุญาตให้ผู้ใช้วางไดเร็กทอรี wp-content ได้ทุกที่ที่ต้องการดังนั้นคุณต้องไม่สมมติว่าปลั๊กอินจะอยู่ใน wp-content / plugins หรือการอัปโหลดนั้นจะอยู่ใน wp-content / upload หรือธีมนั้นจะอยู่ใน wp- content / themes Mark Jaquith ยังแสดงความคิดเห็นที่นี่ด้วยว่าไม่ควรใช้ค่าคงที่เหล่านี้: อย่าใช้ WP_PLUGIN_URL หรือ WP_PLUGIN_DIR - ปลั๊กอินอาจไม่อยู่ในไดเรกทอรีปลั๊กอิน ดังนั้นวิธีที่ยอมรับของการอ้างอิงพา ธ แบบเต็มไปยังโฟลเดอร์ปลั๊กอินเนื้อหา wp และธีมโดยไม่ใช้ค่าคงที่เหล่านี้คืออะไร เป็นตัวอย่างง่ายๆในการแสดงเส้นทางแบบเต็มของปลั๊กอินที่ติดตั้งทั้งหมดฉันสามารถทำสิ่งนี้: <?php $plugins = get_plugins(); foreach ($plugins as $file => …

4
wordpress WP ประกอบด้วยโฟลเดอร์อะไร
wordpress WP ประกอบด้วยโฟลเดอร์อะไร นั่นคือวัตถุประสงค์ทางสถาปัตยกรรมขั้นพื้นฐานของมันคืออะไรตัวอย่างเช่นทำไมมันไม่ทั้งหมดในธีมหรือโฟลเดอร์ผู้ดูแลระบบ นักพัฒนาปลั๊กอินสามารถพึ่งพาเนื้อหา (เช่น jQuery) และนานเท่าไหร่? ฉันอยากจะรู้ด้วยว่าใครเป็นผู้ตัดสินใจว่าอะไรจะไปที่นั่นและมันได้รับการดูแลอย่างไรเมื่อ Wordpress เปลี่ยนแปลงไปสิ่งใดบ้างที่ถูกบันทึกไว้ในเอกสารนโยบาย

4
วิธีที่ดีที่สุดในการยกเลิกปลั๊กอินในกรณีที่มีเวอร์ชัน PHP ไม่เพียงพอ
คุณเขียนปลั๊กอินที่ต้องการ PHP 5.1 มีคนพยายามติดตั้งบนเซิร์ฟเวอร์ที่มี PHP 4 คุณจัดการกับมันอย่างไรในลักษณะที่ปลอดภัยและใช้งานง่าย

5
dbDelta ไม่ได้สร้างตาราง
ฉันผ่านหลายเธรดหน้าตัวแปลงสัญญาณและพยายามยุ่งกับสิ่งต่าง ๆ มากมาย แต่รหัสของฉันดูเหมือนจะไม่สร้างตาราง และฉันไม่สามารถรู้ได้ว่าฉันกำลังไปไหนผิด ฉันตรวจสอบ booking_db_version ในฐานข้อมูลจะได้รับการอัพเดตเมื่อฉันอัปเดตในไฟล์ นี่คือรหัส global $booking_db_version; $booking_db_version = "1.0.0"; function booking_install() { global $wpdb; global $booking_db_version; global $tableprefix; $installed_version = get_option('booking_db_option'); $tableprefix = $wpdb->prefix . 'booking_'; require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); if ( $installed_version !== $booking_db_version ) { /* Create table for packages */ $packagetable = $tableprefix …

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