@crack_user

Почему в WP ошибка Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 33554440 bytes)?

При получении записей - вылазит вот эта ошибка
Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 33554440 bytes)


Что за ошибка - я понимаю, и могу попытаться конечно увеличить обьем, но предполагаю, что не поможет и вновь появится через время, т.к. записей будет становиться больше. Сейчас их под 500 всего(без фильтров).

Получаю я записи таким образом -
$args = array(
        'post_type' => 'turnir',
        'posts_per_page' => 10, 
        'meta_query' => array(
            'relation' => 'AND',
            array(
                'key' => 'Участник', 
                'value' => $nameM,
                'compare' => '=', 
            )
        ),
        'orderby' => 'date', // Сортировать по дате
        'order' => 'ASC' // В порядке возрастания
    );
$query = new WP_Query( $args );
    if ( $query->have_posts() ) {
        while ($query->have_posts()) {
            $dataTurnir = get_post_meta( get_the_ID(), 'Дата турнира', true );
            $level = get_post_meta( get_the_ID(), 'Класс_М', true );
            $nameTurnir = get_post_meta( get_the_ID(), 'Название турнира', true );
            $okr = get_post_meta( get_the_ID(), 'ОКР', true );
            $result[] = [
              'Дата' => $dataTurnir,
              'Ступень' => $level,
              'Название' => $nameTurnir,
              'Балл' => $okr,
            ];
        }
    }


записей всех около 500, но с текущими фильтрами которые я указал - там от силы ну 10 получится, почему тогда вылазит эта ошибка? Может как-то по другому стоит получать записи?
  • Вопрос задан
  • 87 просмотров
Решения вопроса 2
@alexalexes
while ($query->have_posts()) // вероятно, это всегда true
{
$result[] = [ // тут мы без конца наполняем массив - получаем переполнение памяти
            ];
}
Ответ написан
Комментировать
@pantsarny
Не грузите посты целиком , а только id
fields ids
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы