WordPress che recupera i metadati per tutti i tipi di post personalizzati nella visualizzazione elenco


9

Sto riscontrando un problema in WordPress in cui PHP sta morendo. Ho aumentato la memoria, ma il processo PHP passa al 100% dell'utilizzo della CPU, quindi muore e Apache genera un errore 500.

Ho provato a fare in modo che Apache registri qualcosa o PHP / MySQL per registrare un errore, ma nulla viene registrato se non un errore generale 500.

Il problema 500 è nella pagina dell'elenco, ad esempio:

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

Al momento abbiamo oltre 1200 voci di artisti in WordPress, se aggiungo un ordinamento di date come questo:

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

Quindi l'elenco si carica bene, anche veloce! Mi sono seduto e ho guardato il registro delle query MySQL e sembra che WordPress stia caricando i metadati per ogni singolo post (tutti 1200) per produrre l'elenco di circa 10. Solo per una delle query, restituisce 92000 righe. Sto utilizzando Advanced Custom Fields e un modello con il suo framework, quindi ad ogni post è allegata una buona parte di metadati. Sto pensando che questi siano troppi dati che PHP può elaborare e sto raggiungendo un limite qui. I 1200 posti probabilmente raddoppieranno facilmente nel prossimo anno.

Come posso forzare il caricamento della pagina iniziale per aggiungere l'ordinamento della data o risolvere il problema con il caricamento di tutti quei metadati?


Hai provato a disabilitare ACF e altri plugin? Penso che una volta ho avuto un problema simile e penso che il colpevole qui non sia lo stesso WP ma con ACF. ad es. ACF aggiunge metadati alle revisioni e carica anche tutto ciò. Assicurati di qual è la fonte di questo problema in quanto aiuterà altre persone ad aiutarti.
Kraftner,

Ehi, @kraftner, ho disabilitato ACF e non ha fatto alcuna differenza.
Paul Cullen,

Quanta memoria stai usando su wp-config (WP_MAX_MEMORY_LIMIT)? Qual è il tuo valore PHP.INI per memory_limit? Prova a sollevarli al massimo. Inoltre, darei un'occhiata al tuo file di configurazione mysql.
Emanuel Rocha Costa,

Ho aumentato PHP e WP_MAX_MEMORY_LIMIT entrambi temporaneamente a 512 senza alcun effetto. Il mio file di configurazione mysql è: 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
il tipo di post personalizzato è "artista" gerarchico (come le pagine)? .. in tal caso, questo potrebbe essere il colpevole in quanto tutti i post verranno interrogati nella dashboard dell'amministratore. Se la tua applicazione lo consente, potresti provare a cambiare gerarchico in falso per il "artista" CPT e vedere se questo allevia i problemi di memoria
locomo,

Risposte:


1

Prova a cambiare gerarchico: false nella definizione CPT (se l'applicazione lo consente).

Quando i CPT sono impostati su gerarchici: vero tutti i post verranno interrogati nella dashboard dell'amministratore che può causare problemi di memoria.


0

Il problema era che il CPT era impostato su gerarchico, cambiando questo su gerarchico: false in function.php ha risolto il problema.


1
Accetta la tua risposta, quindi questa domanda può essere chiusa.
cjbj,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.