WordPress

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

12
ตรวจสอบว่าฉันลบแฮ็ค WordPress ออกทั้งหมด
บล็อก WordPress เพื่อความสนุกของฉันที่http://fakeplasticrock.com (ใช้งาน WordPress 3.1.1) ถูกแฮก - มันแสดงให้เห็น<iframe>บนทุกหน้าดังนี้: <iframe src="http://evilsite.com/go/1"></iframe> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> ฉันทำสิ่งต่อไปนี้ อัปเกรดเป็น 3.1.3 ผ่านระบบอัพเกรด WordPress ในตัว ติดตั้งExploit Scanner (คำเตือนที่สำคัญจำนวนมากเกี่ยวกับไฟล์ที่ผิดปกติ) และAntiVirus (สิ่งนี้แสดงให้เห็นว่าเป็นสีเขียวและสะอาดดังนั้นฉันจึงถอนการติดตั้งและลบออกหลังจากใช้งาน) เปลี่ยนรหัสผ่าน MySQL เปลี่ยนรหัสผ่านผู้ใช้ WordPress ทั้งหมด เชื่อมต่อผ่าน FTP และดาวน์โหลดทั้งระบบไฟล์ (ไม่ใหญ่มากนี่เป็นโฮสติ้งที่ใช้ร่วมกับ WordPress เท่านั้น) ระบบไฟล์แตกต่างจาก ZIP อย่างเป็นทางการของ WordPress 3.1.3 …
105 security  hacked 

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


6
ทดสอบว่าโพสต์เป็นประเภทโพสต์ที่กำหนดเองได้อย่างไร
ฉันกำลังมองหาวิธีทดสอบว่าโพสต์นั้นเป็นประเภทโพสต์ที่กำหนดเองหรือไม่ ตัวอย่างเช่นในแถบด้านข้างที่ฉันสามารถใส่รหัสดังนี้: if ( is_single() ) { // Code here } ฉันต้องการทดสอบโค้ดสำหรับประเภทโพสต์ที่กำหนดเองเท่านั้น

4
หากผู้ใช้ปัจจุบันเป็นผู้ดูแลระบบหรือบรรณาธิการ
ฉันจะตรวจสอบเพื่อดูว่าผู้ใช้ที่เข้าสู่ระบบในปัจจุบันเป็นผู้ดูแลระบบหรือบรรณาธิการได้อย่างไร? ฉันรู้วิธีการทำทีละอย่าง: <?php if(current_user_can('editor')) { ?> <!-- Stuff here for editors --> <?php } ?> <?php if(current_user_can('administrator')) { ?> <!-- Stuff here for administrators --> <?php } ?> แต่ฉันจะทำงานร่วมกันได้อย่างไร เช่นผู้ใช้เป็นผู้ดูแลระบบหรือบรรณาธิการ?
101 users  user-roles 

2
ถอนการติดตั้งเปิดใช้งานปิดใช้งานปลั๊กอิน: คุณสมบัติทั่วไปและวิธีการ
ฉันกำลังสร้างปลั๊กอินเวิร์ดเพรส อะไรคือสิ่งที่ฉันควรรวมไว้ในคุณสมบัติถอนการติดตั้ง ตัวอย่างเช่นฉันควรลบตารางใด ๆ ที่ฉันสร้างในฟังก์ชั่นติดตั้งหรือไม่ ฉันจะล้างรายการตัวเลือกของฉันหรือไม่? มีอะไรอีกไหม

11
ฉันจะดึงกระสุนของหน้าปัจจุบันได้อย่างไร
ฉันพยายามดึงกระสุนของหน้า WordPress ปัจจุบันนอกลูป หัวเรื่องของหน้าจะส่งคืนด้วยwp_title ()แต่ฉันจะรับกระสุนได้อย่างไร <li> <a href="/slug-of-current-page/"> <?php wp_title('', true); ?> </a> </li>
99 post-meta  slug 

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

5
วิธีที่ดีที่สุดในการเริ่มเรียนในปลั๊กอิน WP?
ฉันได้สร้างปลั๊กอินและแน่นอนว่าเป็นฉันฉันต้องการไปด้วยวิธีการที่ดี OO ตอนนี้สิ่งที่ฉันได้ทำคือการสร้างชั้นนี้แล้วด้านล่างสร้างตัวอย่างของชั้นนี้: class ClassName { public function __construct(){ } } $class_instance = new ClassName(); ฉันสมมติว่ามีวิธี WP มากกว่าที่จะเริ่มชั้นนี้แล้วฉันเจอคนที่บอกว่าพวกเขาชอบที่จะมีinit()ฟังก์ชั่นมากกว่า__construct()หนึ่ง และฉันก็พบว่ามีคนเพียงไม่กี่คนที่ใช้ตะขอต่อไปนี้: class ClassName { public function init(){ } } add_action( 'load-plugins.php', array( 'ClassName', 'init' ) ); อะไรคือวิธีที่ดีที่สุดในการสร้างอินสแตนซ์คลาส WP บนโหลดและมีสิ่งนี้เป็นตัวแปรที่เข้าถึงได้ทั่วโลก? หมายเหตุ:ในฐานะที่เป็นจุดที่น่าสนใจฉันได้สังเกตเห็นว่าในขณะที่register_activation_hook()สามารถถูกเรียกจากภายใน__constructมันไม่สามารถเรียกได้จากภายในinit()โดยใช้ตัวอย่างที่สอง บางทีใครบางคนสามารถสอนฉันในจุดนี้ แก้ไข:ขอบคุณสำหรับคำตอบทั้งหมดเห็นได้ชัดว่ามีการถกเถียงกันพอสมควรว่าจะจัดการกับการเริ่มต้นในชั้นเรียนadd_action( 'plugins_loaded', ...);ได้อย่างไร แก้ไข:เพื่อสร้างความสับสนให้กับเรื่องต่าง ๆ ฉันได้เห็นสิ่งนี้ใช้แล้ว (แม้ว่าฉันจะไม่ใช้วิธีนี้ด้วยตัวเองเพราะการเปลี่ยนคลาส OO ให้เป็นฟังก์ชั่นดูเหมือนจะเอาชนะจุดนั้นได้): // Start …

6
จะใส่รหัสของฉันได้ที่ไหน: plugin หรือ functions.php
มีรูปแบบที่เข้าใจง่ายหรือไม่ในการตัดสินใจว่าโค้ดประเภทใดเป็นของปลั๊กอินหรือธีมfunctions.phpหรือไม่ มีอยู่ หลาย กรณีและหลายการอภิปรายเกี่ยวกับหัวข้อที่ส่วนใหญ่เป็นเพราะมีความเข้าใจผิดบางอย่างเกี่ยวกับการทำงานภายในของ WordPress, ฉันขอคำตอบจากข้อเท็จจริงไม่ใช่ความคิดเห็น ควรอธิบายวิธีจัดการกับประเด็นเหล่านี้ (และอาจมากกว่า): ประเภทโพสต์ที่กำหนดเองและ taxonomies แบบฟอร์มการติดต่อ ย่อ วิดเจ็ตที่กำหนดเอง add_theme_support( 'automatic-feed-links' ); ฟังก์ชั่น SEO เช่นmetaองค์ประกอบที่กำหนดเอง สลับธีม มักจะมีข้อดีข้อเสียสำหรับทั้งสองฝ่าย คำถามที่ได้รับความนิยมมากที่สุดของเราคอลเลกชันที่ดีที่สุดของรหัสสำหรับไฟล์ functions.php ของคุณได้รับข้อมูลโค้ดจำนวนมากเป็นคำตอบที่อย่างน้อยเป็นที่ถกเถียงกัน เราต้องการเกณฑ์ที่ผู้เริ่มต้นสามารถเข้าใจได้อาจเป็นรายการตรวจสอบ - ด้วยเหตุผล ดูคำถามที่เกี่ยวข้องโดย Chip Bennett ในเว็บไซต์ meta ของเรา: คำถามที่ถามวิธีการแก้ปัญหาโดยเฉพาะ "ไม่มีปลั๊กอิน" ที่เกี่ยวข้อง: ฉันจะวางโค้ดขนาดเล็กที่ฉันพบที่นี่หรือที่อื่นบนเว็บได้ที่ไหน

6
การใช้ wpdb เพื่อเชื่อมต่อกับฐานข้อมูลแยกต่างหาก
ฉันต้องการเชื่อมต่อwpdbกับฐานข้อมูลอื่น ฉันจะสร้างอินสแตนซ์และส่งผ่านชื่อฐานข้อมูล / ชื่อผู้ใช้ / รหัสผ่านได้อย่างไร ขอบคุณ
86 database  wpdb  mysql 

3
add_menu_page () ที่มีชื่อแตกต่างกันสำหรับรายการเมนูย่อยแรก
add_menu_pageเอกสารกล่าวว่าจะผ่านชื่อเมนูเป็นพารามิเตอร์ที่สอง: add_menu_page('Page Title', 'Menu Title', ...); เมื่อเพิ่มหน้าเพิ่มเติมในภายหลังadd_submenu_pageหน้าหลักจะกลายเป็นรายการแรกในเมนูย่อย: อย่างไรก็ตามฉันต้องการรายการแรกในรายการที่มีชื่อแตกต่างกัน (แต่ยังคงชี้ไปที่หน้าเดียวกัน) วิธีที่ Wordpress ทำเอง: ฉันจะทำให้สำเร็จในปลั๊กอินได้อย่างไร?

14
ขั้นตอนในการปรับ WordPress ให้เหมาะสมกับโหลดเซิร์ฟเวอร์?
นอกจากการติดตั้ง W3 Total Cache หรือปลั๊กอินการแคชอื่นฉันสามารถทำตามขั้นตอนใดบ้างเพื่อให้แน่ใจว่าชุดรูปแบบและไซต์ของฉันจะทำงานอย่างรวดเร็วที่สุด

3
วิธีป้องกันการอัพโหลดหากผู้ใช้ไม่ได้ลงชื่อเข้าใช้
ฉันใช้ wordpress สำหรับเว็บไซต์ส่วนตัวที่ผู้ใช้อัปโหลดไฟล์ ฉันใช้ "ส่วนตัว WordPress" เพื่อป้องกันการเข้าถึงเว็บไซต์หากผู้ใช้ไม่ได้เข้าสู่ระบบ ฉันต้องการทำสิ่งเดียวกันกับไฟล์ที่อัพโหลดในโฟลเดอร์อัพโหลด ดังนั้นหากผู้ใช้ไม่ได้เข้าสู่ระบบพวกเขาจะไม่สามารถเข้าถึง: https://xxxxxxx.com/wp-content/uploads/2011/12/xxxxxxx.pdf หากพวกเขาพยายามเข้าถึง แต่พวกเขาไม่ได้เข้าสู่ระบบพวกเขาควรจะ ถูกเปลี่ยนเส้นทางไปยังหน้าเข้าสู่ระบบเช่น ฉันพบปลั๊กอินที่เรียกว่าไฟล์ส่วนตัว แต่การปรับปรุงครั้งล่าสุดในปี 2009 และดูเหมือนว่าจะใช้งานไม่ได้กับ wordpress ของฉัน ใครรู้วิธีการใด ๆ วิธี Hotlinking เพียงพอที่จะปกป้องสิ่งนี้ได้อย่างไร ฉันก็พบวิธีนี้: # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} ^.*uploads/private/.* RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in.*$ [NC] RewriteRule . /index.php [R,L] RewriteRule ^index\.php$ - [L] RewriteCond …

10
PHP ส่วนขยายและไลบรารี WP ต้องการและ / หรือใช้คืออะไร
Codex เพียงกล่าวถึงรุ่น PHP ในความต้องการของเซิร์ฟเวอร์อย่างอิสระแต่ PHP สามารถกำหนดค่าในการยกเว้น / รวมถึงส่วนต่างๆที่หลากหลาย ส่วนขยาย / ไลบรารีคืออะไร: จำเป็นสำหรับ WP ในการทำงานหรือไม่ MySQL ... จำเป็นสำหรับฟังก์ชั่นเฉพาะหรือไม่ GD? ... ที่ต้องการสำหรับการทำงานที่ดีที่สุดของฟังก์ชั่นเฉพาะ ม้วน ... มีการใช้งานบ่อยโดยปลั๊กอิน? Zip ...
79 php  server 

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