ページ上の 250 ~ 300 の結果でメモリ制限に達しているメタ フィールド値を持つカスタム投稿タイプのテーブルを出力するショートコードをリファクタリングする方法についてのヒントを探しています。
Gravity Forms Quiz アドオンと WCK カスタム フィールド / 投稿タイプ クリエーターを使用したセットアップの詳細さまざまなデータ コレクション (大文字) と一般的なフローに対して、次のカスタム投稿タイプを持つトレーニング システムをセットアップしました。STUDENTは、クイズの集まりである複数のCOURSESを持つことができるCLASSESでスケジュールされています。学生が小テストを受けるたびに、コース、クラス、小テスト、および学生の ID を識別する個別のメタデータ フィールドを持つ結果が生成されます。
現在のバージョンでは、データ テーブル jQueryを使用してすべての結果をクラスの教師に表示し、ページ付け、検索、並べ替え、.xls へのダウンロード、およびその他のテーブル機能を処理します。しかし、WP_Query をループする結果の数が 250 を超えているため、いくつかのメモリ/パフォーマンスの問題が発生しています。
分析ページでは、ショートコード -コード スニペット ペーストビンを使用して、基本的にテーブル データを出力します。
- WP_Query 各 COURSE、CLASS、および QUIZ カスタム投稿タイプをループして、ID / タイトルを独自の配列に格納し、ID をキーとして使用します。
- すべてのユーザーを foreach ループし、name、email の配列として保存します。
- WP_Query はすべての RESULTS をループし、正しいデータを提示するためにメタ データに基づいて一致を行います。
これをどのようにリファクタリングするか、または最初に焦点を当てるのに最適な方法についてのヒントを探しています. 私が検討してきたいくつかのこと:
- WP_Query パラメータの最適化
- CPT とメタ フィールドは、これを格納する適切な場所ですか?
- WCK が CPT を生成する方法に何か大きなオーバーヘッドが追加されていますか?
- 結果に WP Ajax ページネーションを使用し、別のビルド プロセスを使用して .csv をダウンロードします。しかし、同じパフォーマンスの問題を起こさずにダウンロードを構築するにはどうすればよいでしょうか?
- WP のインポート/エクスポート コードは、私が本当に見るべきいくつかの例を提供していますか?
- ページまたはダウンロードに表示する結果が 1,000 件ある他の例はありますか?
- 環境は一般的に負荷に対してかなり応答性が高いため、「より多くのハードウェアを投げる」ことが実行可能な解決策であるとは思えません。しかし、もしそうなら、シナリオを考慮してどの領域に焦点を当てる必要がありますか (マルチコア、プロセッサ速度、メモリなど)。
どうもありがとう!