WordPress แดชบอร์ดการดูผลลัพธ์ CPT ใน 504


10

ฉันสร้างประเภทโพสต์ที่กำหนดเองด้วย taxonomy ที่กำหนดเอง ฉันมีโพสต์ประมาณ 1500 โพสต์ทั้งหมดซึ่งถูกกำหนดให้กับคำศัพท์อนุกรมวิธานบางประเภท ... บางอันถูกกำหนดให้กับ 200+ คำ

ฉันสังเกตเห็นว่าจากแดชบอร์ดมันใช้เวลานานมากในการดูประเภทโพสต์ที่กำหนดเองซึ่งโดยส่วนใหญ่แล้วจะทำให้เกิดการหมดเวลาของเกตเวย์ 504

การค้นหาโพสต์เหล่านี้จากส่วนหน้านั้นถือว่าใช้ได้และฉันก็ไม่มีปัญหากับมัน

ฉันเข้าใจว่าเมื่อแดชบอร์ดพยายามดูประเภทโพสต์ที่กำหนดเองเหล่านี้พยายามดึงข้อมูลทั้งหมดที่กำหนดให้กับแต่ละโพสต์ก่อนที่จะแสดงทุกอย่าง

ฉันมีชุดติดตั้ง WP นี้เพื่อให้สามารถใช้หน่วยความจำได้มากเท่าที่ต้องการ (memory_limit = -1) ตามที่ฉันค้นคว้าอยู่บางคนกล่าวว่าอาจเกี่ยวข้องกับหน่วยความจำ

มีบางอย่างที่ฉันสามารถทำได้เพื่อเพิ่มประสิทธิภาพของการค้นหานี้ ... อาจไม่โหลดความสัมพันธ์คำอนุกรมวิธานทั้งหมดของการโพสต์จนกว่าคุณจะแก้ไขการโพสต์?

ข้อผิดพลาดหลังจากเพิ่มWP_MEMORY_LIMITจาก 1Gb เป็น 2Gb:

WordPress database error: [MySQL client ran out of memory]
SELECT t.*, tt.*, tr.object_id FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON tt.term_id = t.term_id INNER JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN ('locations') AND tr.object_id IN

WordPress database error: [Lost connection to MySQL server during query]
SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN

WordPress database error: [MySQL server has gone away]
SELECT DISTINCT YEAR( post_date ) AS year, MONTH( post_date ) AS month FROM wp_posts WHERE post_type = 'services' ORDER BY post_date DESC

FWIW ฉันเพิ่มหน่วยความจำของไซต์ WordPress เป็น 2Gb และนั่นทำให้ฉันเห็นโพสต์ แต่ฉันได้รับข้อผิดพลาดเล็กน้อย (เพิ่มในคำถามเดิม) มีสิ่งใดบ้างที่สามารถทำได้เพื่อทำให้แบบสอบถามบน back-end ไม่หนักมาก?
— NW Tech

เมื่อคุณพูดถึงการดูประเภทโพสต์ที่กำหนดเองจากแผงควบคุมที่คุณหมายถึงดูรายการโพสต์ตั้งอยู่ที่wp-admin/edit.php?post_type=services?
— bosco

@bosco ถูกต้อง
— NW Tech

นั่นเป็นจำนวนหน่วยความจำที่น่ากลัวที่จะกำหนดให้กับ Wordpress คุณอยู่บนโฮสติ้งที่ใช้ร่วมกัน VPS หรือเซิร์ฟเวอร์เฉพาะหรือไม่ อาจมีปัญหาพื้นฐานที่ลึกกว่านี้ได้ที่นี่ คุณใช้ Apache หรือเว็บเซิร์ฟเวอร์อื่นเช่น Nginx (อาจเป็นได้ทั้งคู่)?
— Dwayne Charrington

นี่คือเซิร์ฟเวอร์ใหม่ (dv) ที่มี MediaTemple แผงควบคุมคือ Plesk และเซิร์ฟเวอร์กำลังเรียกใช้ CentOS ด้วย Apache และ Nginx ฉันไม่ต้องการกำหนดหน่วยความจำมากขนาดนี้ แต่ดูเหมือนเป็นวิธีเดียวที่จะได้รับผลลัพธ์ใด ๆ
— NW Tech

คำตอบ:


4

CPT และเงื่อนไข taxonomy ถูกสร้างผ่านปลั๊กอิน ฉันสามารถลดข้อความค้นหาโดยเพิ่มสิ่งต่อไปนี้ลงในปลั๊กอินของฉัน:

add_action( 'pre_get_posts', 'nwtd_lpfs_custom_admin_query' );
function nwtd_lpfs_custom_admin_query( $query ) {
    if( !is_admin() && !$query->is_main_query() ) {
         return;
     }
     if( is_post_type_archive( 'services' ) ) {
          $query->set('no_found_rows', 1 );
          $query->set('update_post_meta_cache', 0 );
          $query->set('update_post_term_cache', 0 );
     }
}

ณ ตอนนี้ฉันมี 700 โพสต์ที่เชื่อมโยงกับข้อกำหนดด้านอนุกรมวิธานมากกว่า 1500 รายการและทุกอย่างทำงานได้ดี โพสต์แสดงเกือบจะทันที

** ฉันไม่ได้เขียนรหัสนี้ บางคนที่ฉันทำงานด้วยโดยตรงซึ่งไม่ได้เป็นส่วนหนึ่งของชุมชน WordPress รู้รอบให้รหัส - บางทีมันอาจช่วยคนอื่นหรือคนอื่นอาจขยายออกไปเพื่อให้มีประสิทธิภาพมากขึ้น **

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