web-dev-qa-db-fra.com

Type de message personnalisé + 20 000 messages = vide/404 dans l'administrateur edit.php

J'ai enregistré un type de message personnalisé via register_post_type () et environ 45 champs personnalisés via la fonction add_meta_box () dans le thème.

Type de message personnalisé:

    'labels'             => $labels,
    'description'        => __( 'Custom Post Type', 'hg' ),
    'public'             => true,
    'publicly_queryable' => true,
    'show_ui'            => true,
    'show_in_menu'       => true,
    'query_var'          => true,
    'rewrite'            => array( 'slug' => 'testtype' ),
    'capability_type'    => 'post',
    'has_archive'        => false,
    'hierarchical'       => true,
    'menu_position'      => null,
    'supports'           => array( 'title', 'editor', 'thumbnail' )

Tout fonctionne bien là-bas, et quelques tests en créant manuellement des publications via l'éditeur d'éditeur pour ce type de publication en sont la preuve.

J'ai écrit un script pour importer par lot environ 20 000 ou plus dans ce type d'article personnalisé et les champs personnalisés enregistrés. Avant de continuer, je tiens à souligner que j’ai d’abord exécuté ce script avec seulement 50 entrées environ, puis il a été importé et tout a bien fonctionné.

Ainsi, une fois que les 20 000 messages du type de message personnalisé ont été importés, je retourne à mon administrateur et saisis le type de message personnalisé via admin (type de message personnalisé UX généré automatiquement) - et je reçois une page vierge!

J'ai effectué des recherches et, en conséquence, augmenté PHP limite de mémoire, WP limite de mémoire, WP limite de mémoire maximale et PHP durée d'exécution . Après quoi, je reçois maintenant le générique WordPress 404 au lieu d’une page vierge.

Voici ce que j'ai ajouté à wp-config.php:

define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '2560M' );
set_time_limit(120);

J'ai également conclu que cela n'avait rien à voir avec le thème ou les plugins. Une fois que j'ai supprimé manuellement les 20 000 messages de la base de données via phpMyAdmin, la page edit.php est de nouveau en ordre de travail. Est-ce une surcharge de requête?

S'il vous plaît aider!

Merci d'avance!

1
Joshua4550

Je ne pense pas qu'il existe un moyen raisonnable de régler ce problème en fonction du nombre de messages que vous avez, mis à part le fait de définir hierarchical sur false. Définir hierarchical sur true a un impact considérable sur les performances et n'est pas vraiment destiné à être utilisé dans des types de publication personnalisés.

Si vous n'avez pas besoin d'une relation parent/enfant entre les publications telles que la publication type de type page have, vous devez définir hierarchical sur `false. Si vous avez vraiment besoin de cette relation, alors vous êtes malheureusement bourré. Avec le nombre de messages que vous avez, je ne vois aucune solution viable pour régler votre problème.

Juste un conseil, pensez à vider vos permaliens après avoir défini hierarchical à false

2
Pieter Goosen