Задача: запустить WordPress сайт, содержащий около 15000 записей, часть из которых нужно опубликовать сразу, а часть равномерно запланировать на будущее.

Предполагается, что все записи находятся в состоянии «опубликовано». В данном случае сперва все записи создавались из текстовых файлов путем импорта содержимого в базу данных с помощью функции wp_insert_post

Далее цель, из этих 15000 записей запланировать для будущей публикации 5000 записей, по 20 публикаций в день (растягивается на 250 дней). 10000 оставшихся будут опубликованы сразу.

Решение:

Для запуска кода создается шаблон страницы в папке с темой и для любой страницы выбирается этот шаблон в атрибутах.

Запрос выполнялся на локалке и занимает более 5 минут, нужно учитывать значение max_execution_time для PHP. На хостингах, оно обычно 30 секунд, что недостаточно для такой задачи. Коррекция зависит от времени суток в которое выполняется запрос и от желаемого времени публикации записей (ночь, день).

Итог: 10000 записей опубликованы сразу, в течение 250 дней будут появляться новые записи по 20 штук в день.