web-dev-qa-db-fra.com

WordPress récupérant les métadonnées pour tous les types de publication personnalisés en vue liste

J'ai un problème dans WordPress où PHP est en train de mourir. J'ai augmenté la mémoire, mais le processus PHP passe à 100% d'utilisation du processeur, puis meurt et Apache génère une erreur 500.

J'ai essayé de demander à Apache de consigner quelque chose, ou à PHP/MySQL de consigner une erreur, mais rien n'est consigné à part une erreur générale 500.

Le numéro 500 figure sur la page de liste, par exemple:

/wp-admin/edit.php?post_type=artist

Nous avons actuellement plus de 1200 entrées d'artistes dans WordPress, si j'ajoute un tri de date comme celui-ci:

/wp-admin/edit.php?post_type=artist&orderby=date

Ensuite, la liste se charge très bien, vite même! Je me suis assis et ai regardé le journal de requête MySQL et il semble que WordPress charge les métadonnées pour chaque message (tous les 1200) afin de produire la liste de 10 ou plus. Pour une seule des requêtes, cela renvoie 92 000 lignes. J'utilise Advanced Custom Fields et un modèle avec son propre cadre. Chaque publication est associée à une bonne quantité de métadonnées. Je pense que c’est trop de données à traiter par PHP et j’ai atteint un plafond ici. Les 1200 postes risquent de doubler facilement au cours de la prochaine année.

Comment puis-je forcer le chargement initial de la page à ajouter le tri par date ou résoudre le problème de chargement de toutes ces métadonnées?

9
Paul Cullen

Essayez de changer hierarchical: false dans votre définition de CPT (si votre application le permet).

Lorsque les CPT sont définis sur hiérarchique: true, toutes les publications sont interrogées dans le tableau de bord de l'administrateur, ce qui peut entraîner des problèmes de mémoire.

1
locomo

Le problème était que le CPT était paramétré sur hiérarchique, basculant ainsi sur hiérarchique: false dans le functions.php résolvait le problème.

0
Paul Cullen