Вообще сайты делятся на 2 категории: простые и сложные ) Если брать сложные — то там все дорого богато.
Но давайте честно — 99% сайтов можно сделать быстро и просто за 5 минут )
Вот вам 4 темы и кейса которые закрывают 99% сайтов:
- сайт ссылка
- сайт блог
- сайт магазин
- сайт визитка или сайт для бизнеса
Темы и варианты
Сайт ссылки
Это сайт где есть просто ссылки на ваши другие ресурсы. Это хорошо работает почти всегда и везде. Для музыкантов или творческих профессий — где весь контент — это разные социальные сети.
Да в целом именно этот тип сайта работает почти всегда хорошо и делается за 5 минут.
Самый простой вариант тема Рафт https://wordpress.org/themes/raft/

Сайт блог
Мой самый любимый вариант это Twenty Fifteen https://wordpress.org/themes/twentyfifteen/
Да его можно улучшить. Но даже в базе это круто.
Это работает почти про всех тех кто любит писать.

Сайт магазин
Берем тему Сторфронт. Я видел много магазинов которые делали на ее базе и все очень хорошо работают.
Причем это были магазины как за 2 дня и 100 долларов, так и магазины за 2 года и 2 млн долларов. Тема была та же самая )

Сайт для бизнеса — универсальная тема
Моя избранная тема — это Блокси. Она позволяет делать что угодно. Вообще.
Она в целом бесплатная. Но за доплату — позволяет делать много чего еще без лишних плагинов.
Кстати именно эту тему мы предлагаем бесплатно в рамках клуба https://wpcraft.ru/club-wordpress-woocommerce
- Тема 1: Лендинг для услуг — Одностраничный сайт с описанием услуг, преимуществами, отзывами и формой обратной связи. Идеально подходит для фрилансеров, консультантов и небольших агентств.
- Тема 2: Корпоративный сайт — Многостраничный сайт с разделами «О компании», «Услуги», «Портфолио», «Команда» и «Контакты». Решение для малого и среднего бизнеса.
- Тема 3: Интернет-магазин — Полноценный e-commerce сайт с каталогом товаров, корзиной, оформлением заказа и интеграцией платежных систем. Подходит для старта онлайн-продаж.

Ключевая фишка этой темы — она подходит под 90% сайтов — от блогов до магазинов.
Итого
Если брать малые сайты и реальные кейсы — то все 99% задач упираются в эти темы.
Мы просто их берем и собираем сайт — быстро и просто — за 1-2 часа ) бывает за 1-2 дня ) в сложных кейсах — за 1-2 недели.
Беда в том что люди часто думают чем то странным — явно не головой ) и потому у нас есть туча кривых сайтов с кривым дизайном за дорого )
А потом они же говорят что беда в WordPress )
А если подумать — можно сделать круто — и эффективно ) Главное тут — уметь думать и подбирать темы под задачи )
Ну у меня больше вопросов чем ответов.
Почему , просто не сделать рекурсивный вызов например ,я ещё как то могу представить (вобще трудно придумать где это hearbit применить, даже если специально искать) , но зачем временные значения в транзишенах хранить , они разве они должны через время уничтожаться, что то не понял с ходу ?
И зачем там wp_ajax_nopriv_bpus_start, разве оно не только для авторизованых юзеров в админке ?
1. а что такое просто рекурсивный вызов? функции самой себя? Это будет означать что скрипт будет работать более 1 минуты и в какой то момент сервер его пристрелит. При больших объемах это приводит к ошибкам. И данные не до конца обрабатываются.
2. а где хранить временные значения кроме как не в транзитах? транзиты для этого и придуманы. Если их хранить в опциях, то они там и остаются. А транзиты через какое то время стираются и не засоряют базу мусором. Если данные временные, то логично что они нужны лишь на время обработки и нет смысла их хранить. Да, они должны через какое то время удалиться.
3. wp_ajax_nopriv нужен потому что если функция сама себя вызывает через урл, то это выглядит как некий веб сервер «А» вызвал другой веб сервер «Б». И если клиент авторизован, то веб сервер «А» — нет. И если сделать лишь для авторизованных, то вторая итерация просто не запустится. АЯКС вернут ошибку.
Да nopriv нужен , в рекурсивно я имелвиду как в regenerate thumbnails например ,руководство на фронте не в php конечно же
не представляю как это сделать без зависимости от клиента.
можно чтобы на клиенте АЯКС периодически стартовал новый цикл, но когда клиент закроет браузер то отработка прервется.
А если делать выхов скрипта сами себя на стороне сервера, то на клиенте все равно надо писать AJAX скрипт для запроса состояния. И это по сложности выше чем Hearbeat API. Потому просто выбрано самое простое решение.