Dashboard di WordPress, visualizzazione dei risultati CPT in 504


10

Ho creato un tipo di post personalizzato con una tassonomia personalizzata. Ho circa 1500 messaggi che sono tutti assegnati a una sorta di termine di tassonomia ... alcuni assegnati a più di 200 termini.

Ho notato che dalla dashboard ci vuole molto tempo per visualizzare i tipi di posta personalizzati, il più delle volte con un timeout del gateway 504.

Interrogare questi post dal front-end va bene e non ho problemi con quello.

Comprendo che quando la dashboard sta cercando di visualizzare questi tipi di post personalizzati, cerca di estrarre tutte le informazioni assegnate a ciascun post, prima che mostri tutto.

Ho installato questa installazione di WP per essere in grado di usare tutta la memoria necessaria (memory_limit = -1), mentre stavo cercando, alcuni hanno detto che potrebbe essere correlato alla memoria.

C'è qualcosa che posso fare per aumentare le prestazioni di questa query ... forse non caricare tutte le relazioni sui termini della tassonomia di un post fino a quando non lo stai modificando?

Errori dopo l'aumento WP_MEMORY_LIMITda 1Gb a 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, ho aumentato la memoria del mio sito WordPress a 2 GB e questo mi ha permesso di vedere i post, tuttavia sto ricevendo una serie di errori (aggiunto alla domanda originale). C'è qualcosa che può essere fatto per rendere la query sul back-end non così pesante?
NW Tech,

Quando menzioni la visualizzazione dei tipi di post personalizzati dalla dashboard, ti riferisci alla visualizzazione dell'elenco di post disponibile in wp-admin/edit.php?post_type=services?
bosco,

@bosco Questo è corretto.
NW Tech,

È un sacco di memoria da assegnare a Wordpress. Sei su hosting condiviso, un VPS o un server dedicato? Potrebbero esserci problemi di fondo più profondi qui. Stai usando Apache o un altro server web come Nginx (forse entrambi)?
Dwayne Charrington,

Questo è un nuovo server (dv) con MediaTemple. Il pannello di controllo è Plesk e il server esegue CentOS con Apache e Nginx. Non voglio assegnare così tanta memoria, ma sembrava l'unico modo per ottenere risultati.
NW Tech,

Risposte:


4

I termini CPT e tassonomia sono creati tramite plugin. Sono stato in grado di ridurre la query aggiungendo quanto segue al mio plugin:

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 );
     }
}

Al momento, ho più di 700 post associati a più di 1500 termini di tassonomia e tutto funziona alla grande. I post vengono visualizzati quasi istantaneamente.

** Non ho scritto questo codice. Qualcuno con cui lavoro direttamente, che non fa parte della community di WordPress Answers, ha fornito il codice: forse può aiutare qualcun altro o qualcun altro può espandersi per renderlo più efficiente. **

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.