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.