WordPress

คำถาม & คำตอบสำหรับนักพัฒนา WordPress และผู้ดูแลระบบ

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(); ในนักเรียน: …

4
ย้ายกล่องข้อความที่ตัดตอนมาไปที่ตัวแก้ไขเนื้อหาด้านบน
ฉันพบตะขอ WordPress ชื่อ " edit_form_after_title" เพื่อเพิ่มกล่องข้อความหลังชื่อ ฉันจะใช้ hook นี้เพื่อแสดงข้อความที่ตัดตอนมาหลังชื่อขณะสร้างโพสต์ใหม่ได้อย่างไร

2
เหตุใดการอัปเดตอย่างง่ายของ“ _edit_lock” ของ wp_postmeta จึงช้ามาก
ในบันทึกการสืบค้น MySQL ที่ช้าสุดของเราการสืบค้นที่ช้าที่สุดคือการอัปเดตเป็น wp_postmeta อย่างง่าย นี่คือตัวอย่าง: UPDATE `wp_postmeta` SET `meta_value` = '1392835505:386' WHERE `post_id` = 94705 AND `meta_key` = '_edit_lock'; รายละเอียดที่เกี่ยวข้องในการตั้งค่าของเรา: MySQL ตั้งค่าเวลาสืบค้นช้าเป็น 1 วินาที เครื่องมือเก็บข้อมูลของ wp_postmeta คือ InnoDB ทำงานภายในการติดตั้ง Multisite ขนาดใหญ่ที่มีการโพสต์นับหมื่นบนบล็อก WP หลัก (ที่มีการค้นหาที่ช้าเหล่านี้) กิจกรรมขั้นสูงในพื้นที่ผู้ดูแลระบบ WP (นักเขียน / บรรณาธิการจำนวนมากทำงานพร้อมกัน แต่โดยทั่วไปจะอยู่ในเนื้อหา (ไม่ใช่ของผู้อื่น)) กิจกรรมน้อยในด้านสาธารณะของ WP (ไม่แสดงเนื้อหาจากบล็อกหลัก) ข้อความค้นหาที่ช้าดูเหมือนว่าทุกคนใช้คีย์ "_edit_lock" ข้อความค้นหาในรูปแบบเดียวกัน (ที่ใช้รหัสอื่นที่ไม่ใช่ "_edit_lock") …
11 mysql  post-meta 

1
การเปลี่ยนข้อความ“ เปิดใช้งานปลั๊กอิน” เป็นค่าเริ่มต้น
เมื่อใดก็ตามที่ผู้ดูแลระบบใน WordPress เปิดใช้งานปลั๊กอินเมื่อมีการโหลดหน้าปลั๊กอินจะมีการแจ้งเตือนปรากฏขึ้นเมื่อการเปิดใช้งานการรายงานการเปิดใช้งานสำเร็จ "ปลั๊กอินเปิดใช้งาน" มีวิธีในการเปลี่ยนข้อความนี้ที่ปรากฏในประกาศของผู้ดูแลระบบหรือฉันต้องใช้ข้อความที่กำหนดเองของตัวเอง? นอกจากนี้หากฉันต้องใช้ข้อความที่กำหนดเองสิ่งนี้จะระงับข้อความ "เปิดใช้งานปลั๊กอิน" เริ่มต้นหรือไม่ คำถามที่เกี่ยวข้อง: ถอนการติดตั้งเปิดใช้งานปิดใช้งานปลั๊กอิน: คุณสมบัติทั่วไปและวิธีการ จะแสดงข้อความที่กำหนดเองได้เพียงครั้งเดียวเมื่อเปิดใช้งานปลั๊กอินได้อย่างไร อะไรคือจุดสนใจในไวยากรณ์ของ gettext ซ้ำ: ขอบคุณ Pieter สำหรับการค้นหา: วิธีการลบ "ปลั๊กอินเปิดใช้งาน" เริ่มต้นใน WordPress " แหล่งข้อมูลเพิ่มเติม: gettext () ฟังก์ชั่น บันทึก Rememember ว่าแม้ 'gettext' กรองถูกนำไปใช้เฉพาะในช่วงการเรียกไปยังtranslate()ฟังก์ชั่นtranslate()การใช้งานโดยแทบทุกฟังก์ชั่นอื่น ๆ ใน i18n i18n.php เหล่านี้รวมถึงฟังก์ชั่นทั้งหมดที่ระบุไว้ที่นี่ในโพสต์นี้ใน " Gettext Syntax "
11 plugins  admin  hooks 

9
วิธีแก้ไขตัวแก้ไขภาพที่เสียหาย
เครื่องมือแก้ไขภาพของเรากำลังแสดง HTML ดิบ: ถ้าฉันคลิกที่ Visual หรือ Text ไม่มีอะไรเกิดขึ้นเลย - คลิกนั้นไม่ได้ทำการลงทะเบียน โปรไฟล์ของฉันไม่ได้เลือก "ปิดการใช้งานโปรแกรมแก้ไขภาพ" สิ่งเดียวกันนี้เกิดขึ้นใน Chrome, Opera และ Firefox ฉันได้ปิดการใช้งานธีมและปลั๊กอินทั้งหมดโดยไม่มีการเปลี่ยนแปลง ฉันได้อัปโหลด / wp-admin & / wp- รวมแล้วโดยไม่มีการเปลี่ยนแปลง ฉันสามารถลองสิ่งใดอีกบ้างในการคืนค่าโปรแกรมแก้ไขภาพ

2
โซลูชันสำหรับการควบคุมและปรับใช้เวอร์ชันฐานข้อมูลหรือไม่
ขณะนี้ฉันใช้สคริปต์การถ่ายโอนข้อมูลและส่งมอบฐานข้อมูลกับ git repo --skip-extended-insert --skip-comments --skip-dump-dateหมายความว่า diff สามารถให้ฉันความคิดที่ยุติธรรมของสิ่งที่มีการเปลี่ยนแปลง แต่มันทั้งหมดล้มลงถ้าฉันพยายามผสาน WP_SITEURL, WP_HOME และสถานที่อื่น ๆ wordpress เก็บ URL แบบเต็มต้องอัปเดตเมื่อนำเข้าไปยังโฮสต์อื่น (การทดสอบการแสดงละครการผลิต) มีใครใช้วิธีที่ดีกว่านี้ไหม ประเด็นหลัก: Wordpress เก็บ URL เต็มทั้งหมดผ่านฐานข้อมูล (ไม่ใช่พกพา) บันทึกอื่น ๆ มากมายที่ไม่เกี่ยวข้องมีการเปลี่ยนแปลง auto_increment ค่า (ฉันเพิ่งเอาออก แต่มีปัญหา ID) การประทับเวลา (ยังสามารถตัดออก, อาจเกิดขึ้น) บันทึกชั่วคราว * ... ไม่รู้จะทำอย่างไรกับพวกเขา กระบวนการที่สร้างการย้ายข้อมูลที่บันทึกเวลาโดยมีเพียงสิ่งที่เพิ่มหรือลบเท่านั้นจะเหมาะที่สุด ... แต่ฉันไม่แน่ใจว่าเป็นไปได้หรือไม่

2
เพิ่มการตั้งค่า Display Attachment แบบกำหนดเองสำหรับรูปภาพ
ฉันค้นคว้ามาเยอะและยังไม่ได้ผล คุณสามารถเพิ่มตัวเลือกที่กำหนดเองในAttachment Display Settings(ส่วนหนึ่งของInsert Mediaไดอะล็อกในเครื่องมือแก้ไขบทความ) ได้หรือไม่? สิ่งที่ฉันตามมาคือความสามารถในการเพิ่มจุดยึดด้วยคลาสที่ล้อมรอบรูปภาพทั้งหมดในโพสต์

1
ตรวจสอบว่า add_menu_page มีอยู่หรือไม่
ฉันกำลังทำงานกับปลั๊กอินที่ฉันต้องปล่อยในบางส่วน ปัญหาคือถ้ามีเมนูในหน้าให้เพิ่มปลั๊กอินใหม่ไปยังเมนูย่อยที่ 2 หรือถัดไปเพิ่มเมนูใหม่แล้วเพิ่มปลั๊กอินในเมนูย่อยที่ 1 คำถามของฉัน: จะตรวจสอบว่ามีเมนูได้อย่างไร? หากฉันกำลังเขียนโค้ดฟังก์ชั่นที่ใช้ซ้ำได้ซึ่งจะไปกับปลั๊กอินทุกตัวที่ทำให้เกิดข้อขัดแย้ง ฉันไม่ทราบลำดับการเปิดตัวปลั๊กอิน add_menu_page( 'Page Title', 'Top Menu Title', 'manage_options', 'my_unique_slug', 'my_magic_function' ); add_submenu_page( 'my_unique_slug', 'page title', 'submenu title', 'manage_options', 'my_submenu_slug', 'my_magic_function_of_submenu' );

2
ฉันจะรับ ID หน้าแก้ไขปัจจุบันในผู้ดูแลระบบได้อย่างไร
โซลูชันส่วนใหญ่ที่ฉันพบมีไว้สำหรับการใช้งานส่วนหน้า สิ่งนี้มีไว้สำหรับปลั๊กอินดังนั้นกิจกรรมทั้งหมดจึงอยู่ในส่วนท้าย ฉันจะรับรหัสเพจที่กำลังใช้งานอยู่ (แก้ไข) ในผู้ดูแลระบบได้อย่างไร หมายเหตุฉันออกจากห่วง ฉันแค่ต้องการรับ ID ของหน้า (ไม่ใช่โพสต์) ที่ฉันเห็นอยู่ในส่วนหลัง
11 functions  admin  id 

4
ขนาดรูปภาพที่กำหนดเองแต่ละรายการในไดเรกทอรีการอัปโหลดที่กำหนดเอง
ฉันต้องการอัพโหลดขนาดภาพที่กำหนดเองของฉันในโฟลเดอร์ที่กำหนดเอง โฟลเดอร์ควรมีชื่อของความกว้างที่เลือก ตัวอย่างเช่น: หากฉันเพิ่มขนาดที่กำหนดเองเหล่านี้ ... add_image_size('custom-1', 300, 9999); add_image_size('custom-2', 400, 9999); มันคงจะดีนะที่อัพโหลดรูปอัพโหลดแล้ว: http://www.my-site.com/wp-content/uploads/300/my-image.jpg http://www.my-site.com/wp-content/uploads/400/my-image.jpg เป็นไปได้ไหม ฉันเพิ่งพบว่าฉันสามารถเปลี่ยนโฟลเดอร์อัพโหลดทั่วโลกด้วยตัวกรองupload_dir


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 == …

1
ทางออกที่ง่ายสำหรับการ จำกัด การเข้าถึง (บางส่วน) การอัพโหลด / ดาวน์โหลด
สถานการณ์เริ่มต้น สำหรับเว็บไซต์ที่ฉันตั้งค่าฉันกำลังมองหาพื้นที่ทั้งหมดของการรักษาความปลอดภัยอัพโหลด / ดาวน์โหลดและ จำกัด การเข้าถึงพวกเขาตามบทบาท / ความสามารถของผู้ใช้ แน่นอนฉันได้อ่านคำถามก่อนหน้านี้บางส่วนที่เกี่ยวข้องกับหัวข้อ (ทั่วไป) ที่นี่เพื่อเหตุผลในการอ้างอิงเหตุผลที่สำคัญที่สุด / น่าสนใจที่ฉันพบ: วิธีป้องกันการอัพโหลดหากผู้ใช้ไม่ได้ลงชื่อเข้าใช้ วิธี จำกัด การเข้าถึงไฟล์ที่อัพโหลด? การ จำกัด การเข้าถึงไฟล์ภายในโฟลเดอร์เฉพาะ จะทำให้การอัปโหลดสื่อเป็นส่วนตัวได้อย่างไร? การรวมสคริปต์ดาวน์โหลดของ PHP เข้าที่ หมายเหตุเพิ่มเติม โดยทั่วไปแล้วไม่ใช่ความคิดที่ดีที่จะปรับปรุงความปลอดภัยของการติดตั้ง wordpress ของคุณ - เช่นการป้องกันของคุณwp-config.php- มีหลายสิ่งที่คุณสามารถทำได้และควรทำ มีข้อมูลมากมายเกี่ยวกับวิธีการทำ ฉันอยู่ในบริบทของคำถามนี้ส่วนใหญ่กังวลเกี่ยวกับการอัปโหลด / ดาวน์โหลดของฉัน การอัปโหลด Wordpress ไม่ปลอดภัยทุกคนสามารถเรียกดูuploadsโฟลเดอร์ได้เว้นแต่คุณจะป้องกันด้วย.htaccess: Options All -Indexes .htaccessไฟล์จะต้องมีการวางไว้ภายในuploadsโฟลเดอร์ แต่นั่นไม่ใช่การรักษาความปลอดภัยจริงๆมันแค่ทำให้การค้นหาไฟล์ทำได้ยากขึ้น นอกจากนี้คุณสามารถป้องกันไม่ให้hotlinkingมีการ จำกัด การเข้าถึงตามปกติreferrer- แม้ว่ามันจะแตกต่างกันเล็กน้อย แต่ฉันคิดว่าฉันพูดถึงมัน แต่ฉันไม่ได้อธิบายเพิ่มเติมคุณสามารถค้นหาข้อมูลมากมายเกี่ยวกับเรื่องนั้น แน่นอนว่ามีความเป็นไปได้ที่จะทำให้โพสต์เป็นส่วนตัวหรือสร้างประเภทโพสต์ที่กำหนดเองพร้อมกับไฟล์เทมเพลตที่เหมาะสมเพื่อให้โพสต์ประเภทนั้นเป็นส่วนตัว …

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

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