Bảng điều khiển WordPress, xem kết quả CPT trong 504


10

Tôi đã tạo một loại bài đăng tùy chỉnh với phân loại tùy chỉnh. Tôi có khoảng 1500 bài đăng tất cả trong số đó được gán cho một số loại thuật ngữ phân loại ... một số được gán cho hơn 200 thuật ngữ.

Tôi nhận thấy rằng từ bảng điều khiển, phải mất một khoảng thời gian rất dài để xem các loại bài đăng tùy chỉnh, hầu hết thời gian dẫn đến Hết 504 Cổng.

Truy vấn các bài đăng này từ front-end là tốt và tôi không có vấn đề với điều đó.

Theo hiểu biết của tôi rằng khi bảng điều khiển đang cố xem các loại bài đăng tùy chỉnh này, nó sẽ cố gắng kéo tất cả thông tin được chỉ định cho mỗi bài đăng, trước khi nó hiển thị mọi thứ.

Tôi đã cài đặt WP này để có thể sử dụng nhiều bộ nhớ khi cần (memory_limit = -1), như tôi đang nghiên cứu, một số người cho rằng nó có thể liên quan đến bộ nhớ.

Có điều gì tôi có thể làm để tăng hiệu suất của truy vấn này không ... có thể không tải tất cả các mối quan hệ thuật ngữ phân loại của bài đăng cho đến khi bạn chỉnh sửa bài?

Lỗi sau khi tăng WP_MEMORY_LIMITtừ 1Gb lên 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, tôi đã tăng bộ nhớ của trang web WordPress của mình lên 2Gb và điều đó cho phép tôi xem các bài đăng, tuy nhiên tôi đang nhận được một loạt lỗi (thêm vào câu hỏi ban đầu). Có bất cứ điều gì có thể được thực hiện để làm cho truy vấn ở mặt sau không quá nặng không?
Công nghệ Tây Bắc

Khi bạn đề cập đến việc xem các loại bài đăng tùy chỉnh từ bảng điều khiển, bạn có đề cập đến việc xem danh sách các bài đăng nằm ở wp-admin/edit.php?post_type=servicesđâu không?
bosco

@bosco Đúng vậy.
Công nghệ Tây Bắc

Đó là rất nhiều bộ nhớ được gán cho Wordpress. Bạn đang chia sẻ lưu trữ, VPS hoặc máy chủ chuyên dụng? Có thể có những vấn đề sâu xa hơn ở đây. Bạn có đang sử dụng Apache hoặc một máy chủ web khác như Nginx (có lẽ cả hai) không?
Dwayne Charrington

Đây là một máy chủ mới (dv) với MediaTemple. Bảng điều khiển là Plesk và máy chủ đang chạy CentOS với Apache và Nginx. Tôi không muốn chỉ định nhiều bộ nhớ này, nhưng dường như là cách duy nhất để có được bất kỳ kết quả nào.
Công nghệ Tây Bắc

Câu trả lời:


4

Các điều khoản CPT và phân loại được tạo thông qua plugin. Tôi đã có thể giảm bớt truy vấn bằng cách thêm các mục sau vào plugin của mình:

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 );
     }
}

Tính đến thời điểm hiện tại, tôi có hơn 700 bài đăng gắn liền với hơn 1500 thuật ngữ phân loại và mọi thứ đều hoạt động tốt. Các bài viết được hiển thị gần như ngay lập tức.

** Tôi đã không viết mã này. Một người mà tôi làm việc trực tiếp, người không thuộc cộng đồng Câu trả lời WordPress, đã cung cấp mã - có thể nó có thể giúp đỡ người khác hoặc người khác có thể mở rộng nó để làm cho nó hiệu quả hơn. **

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.