более 20.000 вопросов таксономии — WordPress

Я использую WordPress. И я добавил более 20 000 категорий товаров, но теперь страница, на которой я показываю все категории, недоступна и недоступна.

Даже в бэкэнде — после некоторого количества категорий я не вижу отдыха. И я вижу следующие ошибки:

Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 262144
bytes) in /wp-admin/includes/class-wp-terms-list-table.php on line 273

Maximum execution time of 30 seconds exceeded in class-wp-terms-list-table.php on line 273

PHP Fatal error:  Maximum execution time of 30 seconds exceeded in
/wp-includes/taxonomy.php on line 0

Я попытался увеличить настройки php.ini до этих:

memory_limit = 1024M
max_execution_time = 3000

Но не повезло. В чем может быть проблема? Я что-то пропустил?

2

Решение

Вот это да. Это много! С точки зрения WordPress вы медленно убиваете свой сервер.
Я бы предложил несколько вещей.

  1. Переход на автономный сервер (линод / цифровой океан) прямо сейчас предоставляет хорошие решения за разумную сумму денег.

  2. В связи с реализацией кэширования, я бы также предложил кэш памяти, такой как memcached или redis, реализация для обоих существует в каталоге wordpress.org/plugins.

  3. Поднятие лимина памяти в области WordPress осуществляется следующим образом. Вам нужно определить объем памяти, который вы хотите использовать в вашем wp-config.php. например

    define (‘WP_MEMORY_LIMIT’, ‘512M’);

  4. ограничение по времени может быть сделано следующим образом (также в wp-config), но я бы посоветовал исправить ошибку иным способом (добавочный кеш)

    @ini_set (‘max_execution_time’, 0);
    @set_time_limit (0);

  5. Также рассмотрите способ изменения вашей таксономии на теги (если она не требует иерархии) и используйте обычный способ просмотра ваших категорий. Например, получение списка категорий в WordPress вызывает три таблицы (объединения и т. Д.).

  6. Другим способом решения проблемы может быть изменение SQL с помощью фильтра WordPress (но в случае с get_terms это немного сложно реализовать чистым способом WordPress)

1

Другие решения

Попробуйте получить категории с помощью чистого SQL-запроса (вместо функции wordpress, такой как get_terms).

0

По вопросам рекламы [email protected]