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


9

J'ai un problème dans WordPress où PHP se meurt. 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 de 500.

J'ai essayé d'obtenir qu'Apache enregistre quelque chose, ou PHP / MySQL pour enregistrer une erreur mais rien n'est enregistré autre qu'une erreur générale 500.

Le problème 500 est 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 bien, rapidement même! Je me suis assis et j'ai regardé le journal des requêtes MySQL et il semble que WordPress charge les métadonnées pour chaque publication (toutes les 1200) afin de produire la liste de 10 environ. Pour une seule des requêtes, cela renvoie 92000 lignes. J'utilise des champs personnalisés avancés et un modèle avec son propre cadre, donc chaque article a un bon morceau de métadonnées attachées. Je pense que c'est trop de données pour PHP à traiter et je frappe un plafond ici. Les 1 200 postes devraient doubler facilement au cours de la prochaine année.

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


Avez-vous essayé de désactiver ACF et d'autres plugins? Je pense que j'ai déjà eu un problème similaire et je pense que le coupable ici n'est pas WP lui-même mais avec ACF. Par exemple, ACF ajoute des métadonnées aux révisions, puis charge tout cela aussi. Veuillez vous assurer quelle est la source de ce problème car cela aidera d'autres personnes à vous aider.
kraftner

Hey @kraftner ive a désactivé ACF et cela n'a fait aucune différence.
Paul Cullen

Quelle quantité de mémoire utilisez-vous sur wp-config (WP_MAX_MEMORY_LIMIT)? Quelle est votre valeur PHP.INI pour memory_limit? Essayez de les élever au maximum. Aussi, je voudrais jeter un oeil à votre fichier de configuration mysql.
Emanuel Rocha Costa du

J'ai augmenté PHP et WP_MAX_MEMORY_LIMIT tous les deux à 512 temporairement sans effet. Mon fichier de configuration mysql est: default-storage-engine=MyISAM innodb_file_per_table=1 max_allowed_packet=268435456 open_files_limit=10000 query_cache_size=64M log_slow_queries = 1 log-slow-queries=/var/log/mysql.slow.log log-error=/var/log/mysqld.log general_log_file = /var/log/mysql_general.log
Paul Cullen

1
le type de message personnalisé "artiste" est-il hiérarchique (comme les pages)? .. si c'est le cas, cela pourrait être le coupable, car tous les messages seront interrogés dans le tableau de bord d'administration. Si votre application le permet, vous pouvez essayer de changer la hiérarchie en faux pour le CPT "artiste" et voir si cela
résout les

Réponses:


1

Essayez de changer la hiérarchie: faux dans votre définition CPT (si votre application le permet).

Lorsque les CPT sont définis sur hiérarchique: vrai, tous les messages seront interrogés dans le tableau de bord d'administration, ce qui peut entraîner des problèmes de mémoire.


0

Le problème était que le CPT était réglé sur hiérarchique, en le changeant en hiérarchique: false dans le functions.php a résolu le problème.


1
Veuillez accepter votre propre réponse, afin que cette question puisse être fermée.
cjbj
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.