WordPress

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

2
จะทริกเกอร์สั่งซื้อ WooCommerce ทางอีเมลได้อย่างไร
ฉันต้องการเปิดใช้งานการสั่งซื้ออีเมลของ WooCommerce ในขั้นตอนที่แตกต่างกันในกระบวนการชำระเงินของ WooCommerce ดังนั้นฉันจึงปิดการใช้งานการสั่งซื้อ WooCommerce อีเมลที่สมบูรณ์จากแบ็กเอนด์และตอนนี้ฉันกำลังมองหาบรรทัดของรหัสที่จะเรียกอีเมลในจุดที่ฉันต้องการ ฉันได้ทำการค้นคว้านิดหน่อยแล้วและฉันก็พบวิธีที่จะลบคำสั่งซื้ออีเมลที่สมบูรณ์ แต่ไม่ใช่วิธีการทริกเกอร์มันด้วยตนเอง เคล็ดลับใด ๆ ขอบคุณ!
10 php  woocommerce 

2
ทำไมไม่ลงทะเบียนรหัสย่อถ้า is_admin แดชบอร์ด?
ฉันสังเกตเห็นว่าปลั๊กอินบางตัวเช่นContact-form-7 , Nextgen-galleryหรืออาจเป็นอื่น ๆ นั้นมีคุณสมบัติต่อต้านที่น่าสนใจที่ไม่ได้ลงทะเบียนรหัสย่อเมื่อis_admin()เป็นจริง สิ่งที่เป็นปัญหาคือถ้าคุณต้องการสร้างเนื้อหาแบบไดนามิก (ซึ่งอาจมีรหัสย่อ) จาก ajax และใช้วิธี wp "ถูกต้อง" ในการทำมัน admin-ajax.php เป็นไปไม่ได้ที่จะไม่มี WP_ADMIN เป็นจริง ดูบรรทัดแรกของ admin-ajax.php: define( 'DOING_AJAX', true ); if ( ! defined( 'WP_ADMIN' ) ) { define( 'WP_ADMIN', true ); } ตอนนี้ดูเหมือนว่ามีส่วนขยาย PHP ที่จะช่วยให้คุณยกเลิกการตั้งค่าคงที่ที่กำหนด (แฮ็ค) หรืออาจมีวิธีที่จะยุ่งกับระบบ WP_Screen ที่ไม่มีเอกสารและ$GLOBALS['current_screen']เพื่อให้is_admin()ฟังก์ชั่นกลับเท็จ? วิธีแก้ปัญหาที่ใช้งานได้มากที่สุดดูเหมือนจะโพสต์ไปยังหน้าเว็บหรือรูทไซต์ มันเป็นเรื่องปกติสำหรับปลั๊กอินที่จะลงทะเบียนรหัสย่อของพวกเขาเมื่อis_admin()เป็นเท็จ? ถ้าเป็นเช่นนั้นฉันไม่สามารถหาเอกสารหรือเหตุผลอื่นใดนอกเหนือจากนั้นอาจเป็นการปรับให้เหมาะสมก่อนเวลาอันควร
10 ajax  dashboard 

3
สร้างการอ้างอิงเบ็ดที่อยู่เฉยๆ
ดูเหมือนว่านักพัฒนาปลั๊กอินจำนวนมากใช้เวลาเพิ่มตะขอตัวกรอง / แอ็คชั่นเพื่อให้ผู้ใช้ปรับแต่งการทำงานของผลิตภัณฑ์ อันไหนดี แต่สิ่งที่พวกเขามักจะไม่ทำคือให้รายชื่อของ hooks และจำนวนข้อโต้แย้งที่พวกเขาใช้ มีใครพบวิธีอัตโนมัติที่ดีที่สุดในการชี้ไปที่ไดเรกทอรี plugin (หรือ theme) และดูรายการ hooks ที่มีทั้งหมดหรือไม่ ฉันดูเหมือนปลั๊กอินที่สแกนหา hooks แต่เท่าที่ฉันสามารถบอกได้พวกเขาแสดงให้คุณเห็นว่ามีคนใดที่ถูกเรียกให้แสดงหน้าเว็บ ซึ่งฉันได้รับนั้นมีประโยชน์ แต่บางครั้งถ้าฉันรู้ว่าฉันมีปฏิสัมพันธ์กับปลั๊กอินเฉพาะฉันต้องการทราบทุกที่มันอาจให้ฉันขอการกระทำหรือตัวกรอง ดังนั้นสิ่งที่ฉันกำลังมองหาคือสิ่งที่กำหนดให้ไดเรกทอรีรากของปลั๊กอินจะสร้างรายการที่แต่ละรายการรวมถึง: แท็ก ประเภท (การกระทำหรือตัวกรอง) จำนวนอาร์กิวเมนต์ โดยที่มันถูกเรียก (ผ่านdo_action()หรือapply_filter()) ในแหล่งที่มา สคริปต์จะดีมากเนื่องจากมันน่าจะเป็น HTMLify อย่างสมบูรณ์และแสดงให้ฉันเห็นใน UI ของผู้ดูแลระบบสำหรับทุกปลั๊กอิน แต่แม้แต่สคริปต์บรรทัดคำสั่งที่ส่งออกไฟล์สแตติกที่มีประโยชน์ก็ยอดเยี่ยมเช่นกัน
10 plugins  hooks 

4
Orderby meta_value ส่งคืนโพสต์ที่มี meta_key อยู่แล้วเท่านั้น
ฉันมี wp_query ต่อไปนี้: $args = array( 'post_type' => 'news', 'orderby' => 'meta_key', 'order' => 'ASC', 'meta_key'=>'custom_author_name', 'post_per_page'=>-1 ); $query = new WP_Query($args); echo $query->found_posts; ผลสะท้อน = 10 เพราะมีเพียง 10 โพสต์ด้วยnews meta_key = custom_author_nameแต่มีnewsโพสต์หลายร้อยรายการที่ไม่มีแถว post_meta พร้อม meta_key เฉพาะนั้น โปรดสังเกตว่า meta_query ไม่มีส่วนเกี่ยวข้อง ไม่มีการกำหนด meta_value เนื่องจากฉันพยายามเรียงลำดับโพสต์ตาม meta_key เท่านั้นและไม่กรองตาม meta_value ไม่ควรสั่งซื้อโดยเลือกโพสต์ทั้งหมด? และเพียงแค่สั่งพวกเขา? ถ้าใช่เหตุใดจึงมีการกรองผลลัพธ์ หากไม่พบ …

2
ตรวจสอบว่าเป็นหน้าหลักถ้ามีเด็ก ๆ ถ้ามีลูกหลาน
ฉันมีเทมเพลตหน้าเริ่มต้นหนึ่งที่ฉันต้องการใช้กับสองสถานการณ์ ฉันต้องการใช้เทมเพลตหน้าเดียวเท่านั้นเพื่อความเรียบง่ายสำหรับลูกค้าของฉัน นี่คือสิ่งที่ฉันพยายามทำ: if parent_page OR if child-page without children { display full-width-layout } if child page with children or if grandchild page { display sidebar-menu-layout } เป็นไปได้ไหม นี่คือสิ่งที่ฉันได้ลองมาแล้ว: if( is_page() && $post->post_parent > 0 ) { //display sidebar-menu-layout } else { //display full-width-layout } มันทำงานได้ดีเท่ากับเพจระดับบนสุดมันจะแสดงเลย์เอาต์แบบเต็มความกว้าง แต่ฉันจะทำอะไรได้บ้างเพื่อให้แน่ใจว่าแถบด้านข้าง - เมนู - …

2
ไลบรารีสื่อ - จำกัด รูปภาพสำหรับประเภทโพสต์ที่กำหนดเอง
มี wordpress magic / plugin บางอย่างที่จะทำให้ไลบรารีสื่อแสดงเฉพาะรูปภาพที่อัปโหลดไปยังประเภทโพสต์ที่กำหนดเองหรือไม่? ฉันมีประเภทโพสต์ที่กำหนดเองที่เรียกว่า "ศิลปิน" ฉันต้องการเมื่อผู้ดูแลระบบคลิกเพื่ออัปโหลด / แนบภาพที่ป๊อปอัพไลบรารีสื่อแสดงเฉพาะภาพที่อัปโหลดไปยังประเภทที่กำหนดเองของศิลปินไม่ใช่ไซต์ทั้งหมด ฉันใช้ปลั๊กอิน ACF สำหรับจัดการฟิลด์ที่กำหนดเองและโพสต์ประเภท UI ที่กำหนดเอง เป็นไปได้ไหม

1
แทนที่ผู้ใช้ WordPress ด้วยบัญชี Oauth2
ฉันพยายามตั้งค่า WordPress เป็นลูกค้า OAuth2 ผู้ใช้ของเราทั้งหมดถูกเก็บไว้ใน CMS ที่เป็นกรรมสิทธิ์ของเราซึ่งเป็นผู้ให้บริการ OAuth เรามีผู้ใช้น้อยมาก (ไม่รับ) ในฐานข้อมูล WordPress ของเราส่วนใหญ่เป็นเพียงผู้ดูแลระบบ เป็นการดีที่ฉันไม่ต้องการที่จะเก็บข้อมูลผู้ใช้ในฐานข้อมูล WordPress เพราะฉันจะต้องรักษาสถานะในเว็บไซต์ WordPress จำนวน X ในขณะที่ฉันมีแหล่งที่มาของความจริงภายใน CMS ที่เป็นกรรมสิทธิ์ของเรา การออกแบบเริ่มต้นของฉันในตอนนี้คือการสร้างปลั๊กอินที่แทนที่ฟังก์ชั่นผู้ใช้ WordPress ที่มีอยู่และจัดเก็บโทเค็นการเข้าถึง OAuth และ uuid ของผู้ใช้ภายในคุกกี้หรือเซสชัน แต่ฉันต้องการให้ผู้ใช้รายนี้สามารถเข้าถึงได้ในปลั๊กอินอื่น ๆ ดังนั้นจึงเป็นการดีที่จะเอาชนะวิธีการเริ่มต้นของผู้ใช้ WordPress นี่เป็นวิธีการที่ยอมรับได้หรือไม่? หรือฉันกำลังพยายามทำงานกับ WordPress ในแบบที่มันไม่ได้ตั้งใจให้ทำงานหรือเปล่า? ฉันสามารถค้นหาปลั๊กอินจำนวนมากสำหรับตั้งค่า WordPress เป็นผู้ให้บริการ OAuth2 แต่มีลูกค้าน้อยมาก ที่ถูกกล่าวว่าฉันได้พบบางอย่างที่ตั้งค่า WordPress เป็นลูกค้า แต่จำนวนมากมีเฉพาะกับ Google Apps, Facebook, Twitter, …
10 plugins  users  oauth 

4
wp_redirect () - ส่งส่วนหัวแล้ว
ฉันพยายามใช้wp_redirect()เพื่อเปลี่ยนเส้นทางผู้ใช้หลังจากส่งแบบฟอร์มการสมัครบนหน้าเว็บสำเร็จ มันไม่ทำงานและแสดงข้อผิดพลาดต่อไปนี้: คำเตือน: ไม่สามารถแก้ไขข้อมูลส่วนหัว - ส่วนหัวที่ส่งไปแล้ว (เอาต์พุตเริ่มต้นที่ /Applications/MAMP/htdocs/theme/wp-content/themes/test/header.php:10) ใน / Applications / MAMP / htdocs / theme / wp- รวมถึง / pluggable.php ในบรรทัด 1178 ฉันเข้าใจว่ามีการแสดงผลก่อนหน้านี้แล้วนั่นเป็นเหตุผลว่าทำไมมันไม่ทำงาน แต่ฉันก็ไม่รู้ว่าจะใช้งานอย่างไร ฟอร์มการสมัครใช้งานแสดงผลโดยฟังก์ชั่นและส่งโดยฟังก์ชั่นอื่นภายในฟังก์ชั่นของฉัน if ( isset( $_POST['subscribe'] ) ) { // Submits the form and should then redirect wp_redirect("/thank-you/"); exit; } จากนั้นทั้งสองฟังก์ชั่นเหล่านี้จะใช้ในที่ที่ฉันต้องการแสดงแบบฟอร์มการสมัคร ฉันกลัวว่าไม่ใช่สิ่งที่ดีที่สุดที่จะทำ ฉันควรจะสร้างการกระทำบางอย่างที่ทำเช่นนั้น แต่ฉันไม่รู้ว่าจะใช้งานอย่างไร บทเรียนส่วนใหญ่ที่ฉันพบแสดงผลลัพธ์โดยตรงในหน้าเดียวกันและไม่ต้องการการเปลี่ยนเส้นทางเพิ่มเติม …

3
ฉันจะเปลี่ยนแม่แบบอีเมลสำหรับผู้ใช้ใหม่ได้อย่างไร
เมื่อฉันเพิ่มลูกค้าใหม่อีเมลจะไปยังผู้ใช้ใหม่ในรูปแบบนี้: From: WordPress [wordpress@siteurl.com] Subject: [site name] Your user name and password Message: username: user Password: password siteurl.com/wp-login.php ตอนนี้ฉันต้องการเปลี่ยนรูปแบบเช่นนี้: From: My Site Name [info@siteurl.com] Subject: siteurl.com customer account activated Message: Your customer account has been activated. Your Login credentials are: Username: user email Password: password Thanks, abcd ฉันลองคำตอบนี้แต่มันไม่ทำงาน ฉันจะทำสิ่งนี้ได้อย่างไร
10 templates  email 

3
วิธีการลบขนาดรูปภาพที่ต้องการจาก wp-content / uploads?
การตั้งค่าเริ่มต้นของฉันสื่อในบล็อก WordPress คือ150x150 , 300x300 , 1024x1024ตามลำดับสำหรับภาพขนาดย่อ , กลาง , ใหญ่ภาพ ตอนนี้ฉันกำลังออกแบบชุดรูปแบบที่ต้องการภาพขนาดย่อที่แตกต่างกันเพื่อแสดงในชุดรูปแบบ สำหรับเรื่องนี้ผมไปสื่อการตั้งค่าอีกครั้งและเปลี่ยนการตั้งค่าที่มีขนาดข่าวของฉันเหมือน72x72 , 250x250 , 400x400ตามลำดับสำหรับภาพขนาดย่อ , กลาง , ใหญ่ภาพ แต่ตอนนี้เพื่อปรับขนาดภาพที่อัปโหลดเก่าของฉันฉันใช้ปลั๊กอินสร้างรูปภาพขนาดย่อของ Regenerateและทำให้ขนาดรูปภาพสื่อการตั้งค่าใหม่ของฉันง่ายขึ้น ดังนั้นนี่จึงแก้ปัญหาหลักของฉันได้ คำถามหลัก: ตอนนี้ปัญหาหลักที่เพิ่งเกิดขึ้นก็คือพื้นที่โฮสติ้งของฉันกำลังจะสิ้นสุดลง เมื่อผมตรวจสอบไฟล์ของฉันแล้วก็พบว่าฉันมี7ภาพหนึ่งภาพและจากที่ผมใช้เพียง4 first-image-name.jpg first-image-name-72x72.jpg first-image-name-150x150.jpg first-image-name-250x250.jpg first-image-name-300x300.jpg first-image-name-400x400.jpg first-image-name-1024x1024.jpg second-image-name.jpg second-image-name-72x72.jpg second-image-name-150x150.jpg second-image-name-250x250.jpg second-image-name-300x300.jpg second-image-name-400x400.jpg second-image-name-1024x1024.jpg ............................... ---------- and so on ---------- ตอนนี้ฉันต้องการลบภาพขนาด150x150 , 300x300 …

3
ผลฟิลด์เมตาโพสต์ที่กำหนดเองเกี่ยวกับประสิทธิภาพของโพสต์
ฉันมีโพสต์ที่มีเขตข้อมูลเมตาที่กำหนดเองจำนวนมาก get_post_metaในโพสต์ฉันกำลังเรียกพวกเขาอยู่กับความต้องการใช้ หมายถึงเขตข้อมูลเมตา 10 ช่องที่ฉันใช้อยู่ 10 ครั้ง ฉันทำถูกไหม? หมายถึงมีปัญหาประสิทธิภาพการทำงานด้วยวิธีการดังกล่าวข้างต้นและถ้าใช่แล้ววิธีการลดจำนวนการโทร ฉันตระหนักถึงคำตอบที่มีอยู่ที่นี่: ฟิลด์ที่กำหนดเองและประสิทธิภาพซึ่งอธิบายว่าการใช้ 'แบบสอบถามเดียว' แต่มันไม่ชัดเจนและมีเสียงดังนั้นขอให้อีกครั้งถ้าใครรู้และต้องการแบ่งปันในรายละเอียด

1
เปิดใช้งานการแจ้งเตือนการอัพเดทปิดการใช้งานการปรับปรุง
มีคำถามจำนวนมากเกี่ยวกับวิธีปิดใช้งานการอัปเดตและ / หรือลบการแจ้งเตือนการอัปเดต แต่โซลูชันทั้งหมดที่ปิดใช้งานการอัปเดตจะปิดใช้งานการแจ้งเตือนการอัปเดตด้วย แต่ฉันต้องการปิดการใช้งานความเป็นไปได้ที่จะอัปเดตในขณะที่ยังคงได้รับแจ้งเกี่ยวกับการอัปเดตที่มีอยู่ ปัจจุบันฉันใช้define( 'DISALLOW_FILE_MODS', true ); Codex ปัญหานี้คือมันไม่เพียง แต่ปิดการใช้งานกระบวนการปรับปรุง แต่ยังแจ้งเตือน แก้ไข: โอเคฉันลงหลุมกระต่ายสักหน่อย ฉันเดาว่าฉันควรชี้แจงด้วยว่าฉันไม่ได้พูดถึงการอัพเดทหลัก แต่ยังรวมถึงปลั๊กอินและธีมด้วย หากฉันเข้าใจอย่างถูกต้องนี่เป็นเพราะที่/wp-admin/includes/update.php:250ฟังก์ชันจะคืนค่าก่อนเวลา ดังนั้นฉันเห็นสองตัวเลือก: เพิ่มupdate_pluginsตัวเลือกซึ่งชนิดของการเอาชนะวัตถุประสงค์รวมทั้งฉันไม่แน่ใจว่าผลข้างเคียง เพิ่มเบ็ดของตัวเองชนิดของจำลองadmin_init wp_plugin_update_rowsฉันลองมัน แต่มันก็ดูไม่เหมือนกันเลย ดูเหมือนจะมีอะไรมากกว่านี้อีกทั้งยังไม่รู้สึกเหมือนเป็นวิธีที่สะอาดในการทำเช่นนี้ แก้ไข: มีตั๋วที่ครอบคลุมปัญหานี้ในกรณีที่คุณรู้สึกอยากทำ: https://core.trac.wordpress.org/ticket/25219

3
การสร้าง REST API ที่กำหนดเอง
ฉันมีเว็บไซต์ WordPress.org ที่ให้ผู้ใช้ป้อนข้อมูลค้นหาฐานข้อมูลที่กำหนดเองและแสดงผลลัพธ์ของแบบสอบถาม ฉันใช้งานคลาส wpdbได้ ตอนนี้ฉันกำลังพยายามทำให้แอป Android ทำงานได้ จากสิ่งที่ฉันเข้าใจการสร้างเซิร์ฟเวอร์ RESTful คือ 'แนวปฏิบัติที่ดีที่สุด' ในปัจจุบันสำหรับสิ่งประเภทนี้ ฉันได้ดูปลั๊กอินที่สามารถช่วยฉันทำสิ่งนี้และฉันเจอ: json-rest-api - สำหรับฉันดูเหมือนว่านี่เป็นการเปิดเผยการทำงานหลักของ WordPress เท่านั้น (เช่น. โพสต์, หน้า, ผู้ใช้, ฯลฯ ) และฉันไม่สามารถเห็นวิธีการนี้เพื่อดำเนินการแบบสอบถามที่กำหนดเองบนตารางที่ไม่ใช่ค่าเริ่มต้น โพสต์บล็อกนี้บอกว่าwp mvcทำในสิ่งที่ฉันต้องการอย่างแน่นอนยกเว้นว่ามันจะไม่ได้รับการปรับปรุงในช่วง 2 ปีที่ผ่านมา นอกจากนี้ยังมีJetpackแต่จากสิ่งที่ฉันเห็น json-rest-api เป็นรุ่นที่ปรับปรุงแล้วและดูเหมือนว่าจะให้ฟังก์ชั่นหลักเช่นกัน มีวิธีที่จะทำให้ปลั๊กอินใด ๆ เหล่านี้ใช้งานได้สำหรับจุดปลายที่กำหนดเองหรือไม่? หรือมีปลั๊กอินอื่น ๆ ที่ฉันยังไม่ได้พบ? หากฉันไม่ได้ใช้ปลั๊กอินฉันคิดว่าฉันจะต้องม้วนตัวเอง ฉันสามารถทำเช่นนี้ทั้งจากรอยขีดข่วน (ใช้wpdb, msqliหรือบางสิ่งบางอย่าง) หรือด้วยความช่วยเหลือของ API เช่นRestler หากฉันม้วนตัวเองฉันควรสร้างเทมเพลตในธีมของฉันทำสิ่งที่เหลืออยู่ในนั้นและกำหนดธีมนั้นให้กับเพจภายในแดชบอร์ดหรือไม่? หรือมันจะดีกว่าถ้ามีเซิร์ฟเวอร์อื่นที่ใช้ WordPress แยกกัน …
10 plugins  mobile  json  restful 

2
การอัปเดตอัตโนมัติ WordPress เป็นอันตรายต่อเว็บไซต์ของฉันหรือไม่
เมื่อเร็ว ๆ นี้ฉันได้รู้ว่าเว็บไซต์ Wordpress ของฉันมีการอัปเดตตัวเองโดยอัตโนมัติเมื่อมี Wordpress รุ่นใหม่ให้ใช้งาน ฉันรู้ว่าคุณสมบัติอัตโนมัตินี้มีอยู่ใน Wordpress ตั้งแต่บางครั้งกลับมา แต่ฉันมีคำถามบางอย่างเกี่ยวกับเรื่องนี้: กรณีนี้มีความเสี่ยงหรือไม่? มันสำคัญแค่ไหนที่เราติดตั้ง Wordpress? (เช่นปลั๊กอินและการตั้งค่าความปลอดภัย) Wordpress มีวิธีกู้คืนเว็บไซต์ของเราหรือไม่หากมีสิ่งผิดปกติเกิดขึ้น? WordPress ทำการสำรองข้อมูลเมื่อทำการอัพเดทหรือไม่?

1
ทำไมลูปไม่ว่างเปล่าใน 404 บางช่วง
ฉันเจอปัญหาแปลก ๆ สมมติว่าคุณเข้าถึง URL แบบสุ่มสามระดับขึ้นไปที่อยู่ลึก: http://example.com/a/b/c http://example.com/a/b/c/d ... จากนั้นคือis_404() trueจนถึงตอนนี้ดีมาก แต่ด้วยเหตุผลบางอย่างโพสต์ล่าสุดจะถูกสอบถาม $wp_query->request คือ SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.post_type = 'post' AND ( wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private' ) ORDER BY wp_posts.post_date DESC LIMIT 0, 5 ซึ่งแน่นอนว่าจะhave_posts()กลับมาtrueและอื่น ๆ มีคนอธิบายเรื่องนี้ได้ไหม สิ่งที่ฉันพบ: เหตุผลที่เตะในระดับลึกสามหรือมากกว่านั้นคือก่อนที่ WP นั้นจะค้นหาโพสต์และสิ่งที่แนบซึ่งส่งผลให้เกิดพฤติกรรมอื่น ดูเหมือนว่าแม้ว่า WP …

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