WordPress

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

5
Wordpress กับ Git
ฉันถามคำถามนี้เพราะฉันค้นหาบนอินเทอร์เน็ต แต่หาทางออกไม่ได้ ที่จริงฉันต้องการทางออกที่นักพัฒนาหลายคนสามารถทำงานในโครงการ wordpress เดียวโดยไม่ต้องสร้างความยุ่งเหยิงในงานอื่น ๆ แต่อย่างที่เรารู้ว่าใน wordpress ทุกสิ่งได้รับการบำรุงรักษาในฐานข้อมูลเช่นปลั๊กอินที่ใช้งานอยู่ หากนักพัฒนาติดตั้งปลั๊กอินไปยังโครงการท้องถิ่นของพวกเขามากกว่าวิธีที่พวกเขาสื่อสารกับแต่ละอื่น ๆ ที่ทุกคนควรติดตั้งปลั๊กอินหรือปลั๊กอินนั้น ๆ และการสื่อสารผิดพลาดบางอย่างสามารถทำลายเว็บไซต์ของผู้อื่นได้หากนักพัฒนาซอฟต์แวร์ทุกคนผลัก / ดึงรหัส เราควรแบ่งปันฐานข้อมูลด้วยเพื่อแชร์การตั้งค่าปลั๊กอิน / ธีมเพื่อไม่ให้มีข้อขัดแย้งหรือข้อขัดแย้งเล็กน้อยระหว่างนักพัฒนา ขอบคุณ
21 git 

2
ฉันจะหาเอกสารสำหรับคลาสโรงงาน WP_UnitTestCase ได้ที่ไหน
ในรุ่นล่าสุดWP_UnitTestCaseได้รวม$factoryคุณสมบัติ ตัวอย่างเช่น: $post = $this->factory->post->create(); ฉันจะหาเอกสารเกี่ยวกับคุณสมบัติที่มีประโยชน์นี้ได้ที่ไหน
21 unit-tests 

1
เราควรไว้วางใจโพสต์กลม
@toscho แสดงความคิดเห็นต่อคำตอบนี้ซึ่งทำให้ฉันคิดอีกครั้ง วิธีการไว้วางใจมากที่สุดเราควรจะมีในขอบเขตทั่วโลกโดยเฉพาะเกี่ยวกับการโพสต์ Globals เช่น$post? แล้วอะไรล่ะ ตัวแปรทั่วโลกสามารถเขียนทับได้จากทุกคนก่อนที่เช็คของคุณจะทำงาน นั่นคือจุดของตัวแปรทั่วโลก: การเข้าถึงทั่วโลก $postเช่นเป็นหนึ่งใน globals ที่มีการปรับเปลี่ยนส่วนใหญ่ทั้งในรูปแบบของตัวเองหรือโดยปลั๊กอิน แต่มันยังเป็นที่นิยมใช้กันทั่วโลกในแอปพลิเคชั่นอื่น ๆ ภายในเทมเพลตที่กำหนดตัวอย่างเช่นการตั้งค่าโพสต์ที่เกี่ยวข้อง จากการตอบ (และแสดงความคิดเห็นใน) โพสต์หลายรายการที่มีปัญหาเฉพาะที่เกิดจากการใช้แบบสอบถามที่กำหนดเองมันชัดเจนว่าปัญหาส่วนใหญ่เกิดขึ้นเนื่องจากแบบสอบถามที่กำหนดเองไม่ได้ถูกตั้งค่าใหม่ จากนี้เห็นได้ชัดว่า$postไม่น่าเชื่อถือ โค้ดที่เขียนไม่ดีใด ๆ ที่ใช้ประโยชน์จากการสืบค้นที่กำหนดเองสามารถเปลี่ยน$postทั่วโลกซึ่งจะทำลายบางสิ่งบางอย่าง (เช่นโพสต์ที่เกี่ยวข้อง) มีนักพัฒนา WordPress เพียงไม่กี่คนเท่านั้นที่มีความรู้เพียงพอในการทำงานด้านในของคอร์และรู้ว่าต้องหลีกเลี่ยงอะไรบ้าง จำนวนผู้ใช้งานที่มากขึ้นไม่รู้ว่า WordPress แกนทำงานอย่างไร พวกเขาเพียงแค่ดาวน์โหลดธีมและติดตั้งปลั๊กอินเพื่อทำสิ่งที่จำเป็นหรือเพียงแค่คัดลอกโค้ดจากบทช่วยสอน สมมติว่าพวกเขาติดตั้งปลั๊กอินที่เขียนไม่ดีซึ่งแบ่งโพสต์ที่เกี่ยวข้องไว้ในโพสต์เดียวพวกเขาจะรู้ได้อย่างไรว่าเกิดอะไรขึ้น พวกเขาจะสามารถเรียงลำดับตัวเองออกมาหรือพวกเขาจะเป็นร้อยคนที่เขียนอีเมลถึงผู้แต่งธีมเกี่ยวกับปัญหานี้หรือโพสต์คำถามบนไซต์นี้หรือไม่? คำถามของฉัน:คุณจะสามารถป้องกันปัญหาดังกล่าวที่เกิดจากรหัสนำเข้าอื่น ๆ ได้อย่างไรเมื่อสิ่งที่ทั่วโลกต้องการ$postนั้นไม่น่าเชื่อถือ? เราควรจะใช้สิ่งที่เป็นสากล$postหรือไม่? ทางเลือกคืออะไร? เพียงเพื่อแบ่งปันความคิดของฉันที่นี่ก่อนที่ผมจะสรุป: ผมคิดว่า (และที่เห็นในรูปแบบบางและปลั๊กอินด้วย) ทั้งการใช้wp_reset_postdata()หรือwp_reset_query()ก่อนที่จะทำให้การใช้เพื่อให้แน่ใจว่าโลกจะถูกรีเซ็ตของแบบสอบถามหลัก$post $postแต่ทำไมฉันควรขยายโค้ดของฉันในชุดรูปแบบของฉันเพราะคนอื่นไม่ได้รหัสปลั๊กอินของเขาอย่างถูกต้อง? และหากมีคนรีเซ็ตการสืบค้นที่กำหนดเองอย่างถูกต้องการดำเนินการนี้จะทำงานเป็นครั้งที่สองโดยไม่จำเป็นซึ่งไม่ดี วิธีที่สองผมคิดว่าการที่จะทำให้การใช้งานของแล้วใช้วิธีการบางอย่างเช่น$wp_query$wp_query->post ความคิดใด ๆ เกี่ยวกับเรื่องนี้จะได้รับการชื่นชม

1
วิธีแสดงคำอธิบายเมตาของ Yoast SEO ในเทมเพลตเก็บถาวรสำหรับแต่ละโพสต์แทนที่จะเป็น the_excerpt () [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ WordPress Development Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา ฉันอ่านคำถามนี้แต่ไม่ใช่สิ่งที่ฉันกำลังมองหาอย่างแน่นอน ฉันใหม่กับ Wordpress และสับสนเล็กน้อยกับฟังก์ชั่นและทุกอย่าง ฉันจะรับ metadescription ในลูปสำหรับแต่ละโพสต์ได้อย่างไร ขอบคุณมาก!

2
ตัวกรองและ hooks ทำงานอย่างไรใน PHP อย่างแท้จริง
ตัวกรองและ hooks ใช้งานได้จริงใน WordPress อย่างไร ฉันกำลังถามเกี่ยวกับบางสิ่งที่ก้าวหน้า มันใช้งานอย่างไรใน PHP? เช่นวิธีการรวบรวม hooks ทั้งหมดจากปลั๊กอินที่แตกต่างกันและ "แนบ" ไปยังแกนหลัก ฯลฯ
21 filters  hooks 

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

3
สลับระหว่างแท็บ Visual และ HTML ได้อย่างอิสระ
ดังนั้นคำถามนี้ได้รับการยกหลายครั้งภายใต้ธงที่แตกต่างกัน แต่ฉันต้องการที่จะนำเสนอหัวข้อแบบครบวงจรสำหรับการแก้ปัญหาที่ดีที่สุดสำหรับปัญหานี้ ใน WordPress โดยค่าเริ่มต้นเมื่อสลับไปมาระหว่างตัวแก้ไข HTML และ Visual ใน TinyMCE แท็กบางอย่างจะถูกดึงออกจากเนื้อหาและการทำงานแปลก ๆ อื่น ๆ เกิดขึ้น วิธีแก้ไขปัญหาที่ทราบสองประการสำหรับการเขียนโค้ด HTML ที่มีประสิทธิภาพยิ่งขึ้นคือการใช้ฟังก์ชั่น wp_auto_p โดยใช้ตัวกรองและติดตั้ง TinyMCE Advanced และเปิดใช้งานตัวเลือก "หยุดลบแท็ก & แท็ก" มันใช้งานได้ดีเท่านั้นโชคไม่ดี ยกตัวอย่างเช่นตัวอย่างต่อไปนี้: <h2>How does it work?</h2> <p>In order to use jQuery Easy Columns, you must install it as you would any other jQuery plugin. …

3
กระทู้ปักหมุดมีจำนวนโพสต์เกินขีด จำกัด ต่อหน้า
ฉันใช้pre_get_postsเพื่อปรับจำนวนโพสต์ที่แสดงบนหน้าแรกของฉัน function lifelounge_query_adjust( $query ) { if ( is_home() ) { set_query_var( 'posts_per_page', 12 ); return; } } add_filter( 'pre_get_posts', 'lifelounge_query_adjust' ); แต่ฉันพบปัญหากับการโพสต์เหนียว โดยทั่วไปถ้าฉันมีโพสต์ใด ๆ เหนียวแบบสอบถามจะแสดงมากขึ้นกว่า 12 โพสต์ผมได้ระบุไว้เพราะมันจะแสดง 12 บวกยังโพสต์ใด ๆ แน่นอนฉันไม่สนใจโพสต์เหนียว: function lifelounge_query_adjust( $query ) { if ( is_home() ) { set_query_var( 'posts_per_page', 1 ); set_query_var( 'ignore_sticky_posts', 1 ); …

2
ฉันจะใช้ฟังก์ชัน WordPress ในสไตล์ชีทของฉันได้อย่างไร
ฉันให้style.phpไฟล์ของฉันมีลักษณะเช่นนี้ <?php header('Content-Type: text/css');?> #div{ background:<?php echo get_option('bgcolor');?>; } สิ่งนี้ไม่ทำงาน แต่เมื่อฉันทำสิ่งนี้จะได้ผล <?php header('Content-Type: text/css');?> #div{ background: <?php echo 'blue';?>; } จะมีปัญหาอะไร? นี่คือ mainfile.php <?php function test(){ global get_option('bgcolor');?> <input type="text" id="bgcolor" name="post_popup_settings[bgcolor]" value="<?php echo get_option('bgcolor');?> " /> <?php } add_action('admin_head','test'); นี่คือจริงในส่วนผู้ดูแล
21 plugins  php  css  endpoints 

2
wp_verify_nonce เทียบกับ check_admin_referer
ความแตกต่างคือสิ่งที่ฉันควรใช้ ฉันรู้ว่า wp_verify_nonce ตรวจสอบการ จำกัด เวลาและ check_admin_referer ฉันคิดว่าการโทร wp_verify_nonce เช่นเดียวกับการตรวจสอบเซ็กเมนต์ URL ของผู้ดูแลระบบ แต่ฉันสับสนนิดหน่อยที่ฉันควรใช้และเมื่อใด ขอบคุณสำหรับความชัดเจน
21 admin  security  nonce 

4
ฟังก์ชั่นที่เลิกใช้อยู่ในแกนนานเท่าใด?
ฉันอยากรู้ว่ากระบวนการหรือปรัชญาที่อยู่เบื้องหลังการลบฟังก์ชั่นที่เลิกใช้แล้วจากแกนกลาง Codex พูดว่า : ฟังก์ชั่นเหล่านี้ด้านล่างเลิกใช้แล้ว ซึ่งหมายความว่ามีการแทนที่ด้วยฟังก์ชันใหม่หรือไม่ได้รับการสนับสนุนอีกต่อไปและอาจถูกลบออกจากรุ่นอนาคต เนื่องจาก 'อาจถูกลบ' ค่อนข้างเป็นลางสังหรณ์และค่อนข้างไม่ชัดเจนฉันจึงมีคำถามต่อไปนี้ เกณฑ์สำหรับการลบฟังก์ชั่นที่เลิกใช้แล้วคืออะไร (เช่นช่องว่างเวอร์ชันกรอบเวลาความเสี่ยงด้านความปลอดภัย ฯลฯ ... ) การลบฟังก์ชั่นสื่อสารกับสาธารณะอย่างเป็นทางการหรือไม่? ตัวอย่างเช่น: get_postdata()เลิกใช้แล้วตั้งแต่ 1.5.1 และไม่มีหน้า Codex เป็นทางการ มีเหตุผลนี้ยังคงรอบอื่น ๆ นอกเหนือจากการสนับสนุน WordPress รุ่นเก่าหรือไม่

4
การแคชวัตถุทำงานอย่างไร
ฉันกำลังมองหาคำตอบที่ชัดเจนที่นี่ เมื่อเปิดใช้งานการแคชวัตถุตัวเลือกและทรานแซคชันจะอยู่ที่ไหน โดยค่าเริ่มต้นทั้งสองจะถูกเก็บไว้ในฐานข้อมูล แต่ฉันได้ยินการอ้างอิงบางอย่างที่ memcache จะเก็บไว้ที่อื่นและ APC จะทำอย่างอื่นโดยสิ้นเชิง ที่ว่าจะข้อมูลนี้ได้รับการยืนยันในทั้งสองกรณี?

6
กำลังตรวจจับ URL ของ WordPress โดยไม่ใช้ HTTP GET แบบเต็ม?
ฉันกำลังพยายามเขียนรูทีน oneboxing ที่ให้การดูแลบล็อก WordPress เป็นพิเศษ ให้ URL ที่เรียบง่ายและไม่มีการตกแต่งในเนื้อหาเช่น http://blog.stackoverflow.com/2011/03/a-new-name-for-stack-overflow-with-surprise-ending/ ฉันจะตรวจสอบได้อย่างไรว่านี่เป็นการติดตั้ง WordPress โดยไม่ต้องทำ HTTP GET แบบเต็มในทุก ๆ URL ที่ฉันเห็น มีการประชุมร่วมกันทั่วไปสำหรับ URL ของเวิร์ดเพรสที่เราสามารถเริ่มต้นด้วยซึ่งจะกำจัด URL อย่างน้อยที่สุดออกจากการแข่งขัน ในกรณีนี้มันคือ ... http://example.com/year/month/slug-goes-here แต่นั่นไม่ใช่ค่าคงที่สากลเช่นกัน ฉันลองดูที่ส่วนหัวของ URL นั้นโดยใช้HTTP HEADและฉันเห็น: Connection:Keep-Alive Content-Encoding:gzip Content-Length:18340 Content-Type:text/html; charset=UTF-8 Date:Thu, 07 Jun 2012 07:07:38 GMT Keep-Alive:timeout=15, max=100 Server:Apache/2.2.9 (Ubuntu) DAV/2 PHP/5.2.6-2ubuntu4.2 with Suhosin-Patch …
21 urls 

2
ฉันจะได้รับโพสต์ด้วย ID โพสต์หลายรายการได้อย่างไร
ฉันมีสตริงกับโพสต์ ID 43,23,65ของ: ฉันหวังว่าฉันจะสามารถใช้get_posts()และใช้สตริงที่มี ID เป็นอาร์กิวเมนต์ แต่ฉันไม่พบฟังก์ชั่นใด ๆ ในการดึงข้อมูลการโพสต์หลายรายการด้วย ID ฉันต้องทำจริงๆWP_queryเหรอ? ฉันเคยเห็นบางคนพูดถึงการใช้tag_in- แต่ฉันไม่สามารถหาเอกสารใด ๆ เกี่ยวกับเรื่องนี้
21 get-posts 

5
วิธีการ: ผลักดัน GitHub repo ไปยังเซิร์ฟเวอร์ปลั๊กอิน wordpress
ผมพัฒนาปลั๊กอินของฉันไปบน GitHub แต่เมื่อมันมาถึงการใช้งานที่ฉันต้องอย่างใดคัดลอกการเปลี่ยนแปลงของฉันเข้าไปในWordpress SVN ขณะนี้ฉันทำสิ่งนี้ด้วยตนเองและคัดลอกแต่ละไฟล์ในแต่ละไดเรกทอรี แต่ใช้เวลานานและเกิดข้อผิดพลาดได้ง่าย ฉันได้เห็นและลองใช้สคริปต์บางอย่าง แต่ฉันคิดว่าฉันต้องเรียกใช้งานผิดเพราะพวกเขามีข้อผิดพลาดหรือไม่คัดลอกไฟล์อย่างถูกต้อง ดังนั้นคำถามของฉันคือมีใครประสบความสำเร็จโดยอัตโนมัติและถ้าเป็นเช่นนั้นคุณทำได้อย่างไร ขอบคุณ!
21 svn  github 

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