WordPressダッシュボード、CPT結果を504で表示


10

カスタム分類でカスタム投稿タイプを作成しました。私には約1500の投稿があり、そのすべてがある種の分類用語に割り当てられています...一部は200以上の用語に割り当てられています。

ダッシュボードからカスタム投稿タイプを表示するには非常に長い時間がかかることに気付きました。ほとんどの場合、504ゲートウェイタイムアウトが発生します。

フロントエンドからこれらの投稿をクエリすることは問題なく、問題はありません。

ダッシュボードがこれらのカスタム投稿タイプを表示しようとしているとき、すべてを表示する前に、各投稿に割り当てられているすべての情報をプルしようとしていると私は理解しています。

私が調査していたように、私はこのWPインストールセットを必要なだけのメモリを使用できるようにしています(memory_limit = -1)。

このクエリのパフォーマンスを向上させるために何かできることはありますか...投稿を編集するまで、投稿の分類用語の関係をすべてロードしない可能性がありますか?

WP_MEMORY_LIMIT1Gbから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に増やしたため、投稿を表示できましたが、多数のエラーが発生しました(元の質問に追加されました)。バックエンドのクエリをそれほど重くしないためにできることはありますか?
NW Tech

ダッシュボードからカスタム投稿タイプを表示することについて言及するとき、にある投稿のリストを表示することを指しwp-admin/edit.php?post_type=servicesますか?
bosco 2013

@bosco正解です。
NW Tech

これは、Wordpressに割り当てるには非常に大量のメモリです。共有ホスティング、VPS、または専用サーバーを使用していますか?ここには根本的な問題がさらに深くなる可能性があります。ApacheまたはNginxなどの別のWebサーバー(おそらく両方)を使用していますか?
ドウェイン・チャリントン2013

これはMediaTempleを備えた新しいサーバー(dv)です。コントロールパネルはPleskで、サーバーはApacheとNginxでCentOSを実行しています。これだけのメモリを割り当てたくありませんが、結果を得る唯一の方法のように思えました。
NW Tech

回答:


4

CPTと分類の用語はプラグインを介して作成されます。次のコードをプラグインに追加することで、クエリを減らすことができました。

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 Answersコミュニティに参加していない、直接作業している人がコードを提供してくれた-多分それは誰かを助けることができるか、誰かがそれを拡張してより効率的にすることができるかもしれない。**

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.