Автоматичне оновлення публікацій у WordPress за допомогою PHP
Підтримання актуальності контенту — це простий, але ефективний спосіб залишатися помітним у пошукових системах і утримувати увагу читачів. Проте оновлювати старі публікації вручну займає багато часу, особливо якщо сайт має сотні сторінок.
У цьому матеріалі ви дізнаєтесь, як автоматизувати процес за допомогою PHP і вбудованої системи планування завдань WordPress. Кілька рядків коду дозволять вам автоматично оновлювати або “перепубліковувати” старі статті, підтримуючи сайт живим і свіжим без жодних зайвих дій.
Як працює WordPress Cron
Перш ніж перейти до коду, варто розібратися, як саме працює система Cron у WordPress. На відміну від звичайного серверного cron-завдання, яке виконується у точний час, WP-Cron запускається під час відвідування сайту користувачем. Тобто заплановані дії виконуються лише тоді, коли хтось відкриває сторінку вашого сайту — це легкий і зручний механізм для більшості блогів.
WP-Cron можна використовувати для будь-яких фонових завдань: від надсилання електронних листів до автоматичного оновлення публікацій чи зображень. Однак для сайтів із невеликим трафіком краще налаштувати справжній серверний cron, щоб забезпечити стабільність роботи.
Створення запланованого завдання за допомогою PHP
Тепер створимо саму автоматизацію. WordPress має просту функцію wp_schedule_event(), яка дозволяє реєструвати періодичні завдання. Спочатку перевіримо, чи вже заплановано подію за допомогою wp_next_scheduled(), і якщо ні — зареєструємо її для виконання щодня.
Після цього подія запускатиме вашу власну функцію — наприклад, ту, що шукає пости, опубліковані понад рік тому, і оновлює їхню дату публікації. Поєднання wp_schedule_event() і add_action() — це основа будь-якої автоматизації у WordPress.
Приклад коду:
if ( ! wp_next_scheduled('auto_refresh_hook') ) {
wp_schedule_event(time(), 'daily', 'auto_refresh_hook');
}
add_action('auto_refresh_hook', 'refresh_old_posts');
function refresh_old_posts() {
// логіка оновлення публікацій тут
}
Створення функції оновлення публікацій
Коли cron-завдання вже створено, потрібно визначити, що саме воно робитиме. Мета проста: знайти пости, опубліковані раніше певного періоду, і автоматично оновити їх. Для цього використовується функція get_posts() для вибірки старих матеріалів, а wp_update_post() — для зміни їхньої дати публікації або останнього редагування.
Такий підхід дозволяє час від часу “освіжати” ваш контент, піднімаючи старі, але цінні статті вище у стрічці. Це легкий спосіб підтримувати SEO-активність без постійного ручного втручання.
Приклад коду:
function refresh_old_posts() {
$args = [
'post_type' => 'post',
'post_status' => 'publish',
'date_query' => [['before' => '1 year ago']],
'posts_per_page' => 5,
];
$posts = get_posts($args);
foreach ($posts as $post) {
wp_update_post([
'ID' => $post->ID,
'post_date' => current_time('mysql'),
'post_date_gmt' => gmdate('Y-m-d H:i:s'),
]);
}
}
Додаємо безпеку та оптимізацію
Під час автоматизації будь-якого процесу важливо враховувати безпечність виконання. Ви не хочете, щоб кілька cron-завдань запускались одночасно або оновлювали надто багато постів за один раз. Для цього додають тимчасове блокування (transient lock), щоб уникнути накладань, та обмежують кількість оновлень за цикл (наприклад, 3–5 публікацій).
Також варто зберігати час останнього успішного виконання через update_option(). Це допоможе відстежувати роботу скрипта або виконати ручну перевірку пізніше. Для локального тестування можна тимчасово зменшити інтервал до кількох хвилин — але після перевірки поверніть щоденний запуск.
Приклад коду:
function refresh_old_posts() {
if (get_transient('refresh_lock')) return; // запобігаємо одночасному запуску
set_transient('refresh_lock', 1, 10 * MINUTE_IN_SECONDS);
$args = [
'post_type' => 'post',
'post_status' => 'publish',
'date_query' => [['before' => '1 year ago']],
'posts_per_page' => 3,
];
$posts = get_posts($args);
foreach ($posts as $post) {
wp_update_post(['ID' => $post->ID, 'post_date' => current_time('mysql')]);
}
update_option('last_refresh_run', current_time('mysql'));
delete_transient('refresh_lock');
}
Тестування та усунення неполадок Cron-завдання
Після створення автоматизації важливо переконатися, що вона дійсно працює. Ви можете протестувати її вручну за допомогою WP-CLI-команд, наприклад:wp cron event list або wp cron event run auto_refresh_hook. Якщо сайт має невеликий трафік, cron може не запускатися регулярно — у такому випадку налаштуйте справжнє серверне cron-завдання, яке викликатиме wp-cron.php щогодини.
Якщо пости не оновлюються, перевірте назву функції, підключення через add_action() і параметри дати у запиті. Також можна тимчасово вставити error_log() у функцію, щоб упевнитися, що вона виконується.
Коли все працює стабільно, поверніть інтервал до щоденного режиму та спостерігайте за результатами у списку публікацій або в аналітиці — ви побачите, як старі матеріали поступово піднімаються вище.
Переваги для SEO та контент-стратегії
Автоматичне оновлення старих публікацій — це не просто технічний прийом, а дієвий інструмент контент-маркетингу. Пошукові системи надають перевагу актуальному контенту: оновлення свідчить, що сторінка залишається корисною та живою. Перепубліковуючи або оновлюючи “вічнозелений” контент, ви підвищуєте його шанси знову потрапити у верхні позиції результатів пошуку.
Водночас не варто імітувати оновлення без змісту. Використовуйте цей cron-скрипт як підтримку для реальних покращень — додайте нові дані, внутрішні посилання чи зображення. Так ваші оновлені пости принесуть користь читачам і водночас отримають SEO-підсилення завдяки оновленій даті публікації.
Для найкращого ефекту поєднуйте автоматичне “освіження” з періодичним редакторським переглядом — перевіряйте статті, оновлюйте інформацію та повторно поширюйте їх у соцмережах.
SEO інструменти на основі ШІ
Smart SEO Keyword Clustering & Intent Analysis Assistant Keyword Navigator — це спеціалізований Gemini Gem…
Pet-проєкти: від захоплення до прибутку
Що таке pet-проєкт?Чим pet-проєкти відрізняються від звичайної роботи?Чому pet-проєкти популярні?Які переваги і мотивація стоять за…
Digital PR: що це таке?
Присутність бренду в онлайн-просторі є не просто бажаною, а й абсолютно необхідною умовою для успіху….
10 кроків до того, щоб стати успішним контент-креатором
Створення контенту стало однією з найзатребуваніших професій сьогодення. Як контент-креатор, ви можете обирати між створенням…
Лінкбілдінг для сайтів у ніші кріпто і блокчейн
Лінкбілдінг відіграє важливу роль у SEO-стратегії будь-якого криптопроєкту. Він збільшує трафік на сайт, підвищує авторитет…
Лінкбілдинг для сайтів e-commerce
SEO для e-commerce є важливим аспектом розвитку бізнесу, оскільки велика частка онлайн-доходів залежить від залучення…
Висновок: налаштуйте один раз — і ваш блог завжди буде “живим”
Усього кілька рядків PHP-коду дозволяють автоматизувати одну з найрутинніших задач у контент-менеджменті — підтримку актуальності публікацій. Завдяки системі WordPress Cron старі статті можуть оновлюватися автоматично, посилюючи SEO-сигнали та створюючи ілюзію постійної активності навіть без ручного втручання.
Цей інструмент найкраще працює у поєднанні з реальним редагуванням — додаванням нових фактів, уточненням даних, оновленням посилань. Він не замінює творчість, а лише допомагає її підтримувати. Один раз налаштуйте скрипт, перевіряйте його результати, і ваш контент залишатиметься живим, актуальним і корисним щодня.
Хочете зробити ще більше? Поєднайте цей cron-підхід з автоматичним внутрішнім лінкуванням або системою відстеження ключових слів — і отримаєте повноцінний набір інструментів для SEO-автоматизації.
