Skip to content

Все для WordPress, веб-розробки — і не тільки

🔗 Як скинути постійні посилання WordPress: 3 способи виправити помилку 404

🔗 Як скинути постійні посилання WordPress: 3 способи виправити помилку 404

Знайомо: заходите на сайт, а там білий екран і заповітні цифри 404. При цьому головна відкривається, адмінка працює, а сам допис чи сторінка, ні. Ви перевіряєте URL, перезберігаєте запис, очищаєте кеш плагіна, глухо.

У дев’яти випадках із десяти корінь проблеми, злетілі правила перезапису WordPress. Постійні посилання (permalinks) перестали резолвитися, і рушій не розуміє, який контент показувати за цією адресою. Гарна новина: лікується це за хвилину, без плагінів і без правок коду.

Нижче, три способи скинути постійні посилання: від найпростішого (пара кліків в адмінці) до ручного втручання в базу через phpMyAdmin. Після скидання помилка 404 зникає, а структура URL залишається недоторканою.

💡 Швидкий огляд:

  • Зайдіть в адмінку WordPress і натисніть «Зберегти зміни» на сторінці постійних посилань.
  • Додайте рядок коду у functions.php теми, оновіть сайт і видаліть рядок назад.
  • Очистіть поле rewrite_rules у таблиці wp_options через phpMyAdmin.
  • Перевірте результат: відкрийте проблемну сторінку й переконайтеся, що 404 зникла.

Що таке постійні посилання і навіщо їх скидати

Постійні посилання (permalinks) — це людинозрозумілі URL сторінок і дописів WordPress. Замість ?p=123 ви бачите /blog/kak-sbrosit-ssylki/. За перетворення відповідає механізм rewrite rules, набір правил, який рушій зберігає в базі даних і (за певних налаштувань) у файлі .htaccess.

Коли додається новий тип записів, змінюється структура посилань або після міграції сайту правила перезапису можуть не оновитися автоматично. WordPress продовжує використовувати старий кеш правил, і сторінка, яка фізично існує, віддає 404. Скидання (flush) примусово перебудовує rewrite rules з нуля: видаляє збережені правила й генерує актуальні.

Це не «видалення» постійних посилань, структура URL, задана в налаштуваннях, залишається такою самою. Змінюється лише внутрішній кеш правил маршрутизації. Операція абсолютно безпечна: теми, плагіни та контент не зачіпаються.

Спосіб 1. Через панель керування WordPress

Найшвидший і найбезпечніший метод, скидання через адмінку. Підходить, якщо панель керування доступна.

  • Зайдіть у консоль WordPress: ваш-сайт.com/wp-admin.
  • Перейдіть у Налаштування → Постійні посилання.
  • Нічого не змінюйте в налаштуваннях, просто прокрутіть сторінку вниз.
  • Натисніть синю кнопку «Зберегти зміни».
Кнопка збереження на сторінці постійних посилань WordPress

WordPress мовчки перебудує rewrite rules і оновить .htaccess (якщо він використовується). Жодних сповіщень про успіх не з’явиться, просто відкрийте проблемну сторінку в новій вкладці браузера й перевірте, чи зникла помилка.

Чому це працює? Коли ви натискаєте кнопку «Зберегти зміни», рушій викликає внутрішню функцію flush_rewrite_rules(), ту саму, яку розробники використовують у коді. Різниця лише в способі запуску: тут ви клацаєте мишкою, а не пишете PHP.

Метод вирішує проблему в абсолютній більшості випадків. Якщо не допомогло, переходьте до способу 2.

Спосіб 2. Через functions.php теми

Якщо адмінка не вантажиться або кнопка «Зберегти» не дала результату, скиньте правила програмно. Для цього потрібен доступ до файлів сайту: через FTP, файловий менеджер хостингу або вбудований редактор тем.

Важливо: flush_rewrite_rules(), дорога операція. Вона перебудовує всю структуру URL і, якщо викликати її на кожному хіті, відчутно сповільнює сайт. Тому ми додамо функцію одноразово, оновимо сайт і одразу видалимо рядок.

  • Відкрийте файл functions.php активної теми. Шлях: /wp-content/themes/ваша-тема/functions.php.
  • У самий кінець файлу, перед закриваючим ?> (якщо він є), додайте один рядок:
1flush_rewrite_rules();
  • Збережіть файл.
  • Оновіть будь-яку сторінку сайту в браузері, функція відпрацює при першому ж хіті.
  • Знову відкрийте functions.php і видаліть доданий рядок. Обов’язково.
Код flush rewrite rules у редакторі теми WordPress

Функція спрацювала один раз, правила перебудовано, код прибрано, сайт працює у штатному режимі без зайвого навантаження. Цей самий підхід використовують розробники плагінів: flush_rewrite_rules() вішають на хук активації, а не на кожен запит.

Альтернатива для тих, хто не хоче чіпати functions.php напряму: плагін Code Snippets. Створіть новий сніпет із тим самим кодом, виконайте його один раз (кнопка «Execute») і видаліть. Результат ідентичний.

Спосіб 3. Через phpMyAdmin, пряме скидання правил у базі

Найглибший рівень, ручне очищення rewrite rules напряму в таблиці wp_options. Застосовуйте, коли немає доступу ні до адмінки, ні до файлів теми (наприклад, білий екран смерті на всьому сайті, крім бази даних).

Обов’язково зробіть резервну копію бази перед будь-якими правками в phpMyAdmin. Одна невірна дія в SQL-редакторі може незворотно пошкодити сайт.

  • Зайдіть у phpMyAdmin через панель хостингу (cPanel, ISPmanager, DirectAdmin), розділ «Бази даних».
  • У лівій колонці виберіть базу даних вашого сайту WordPress.
  • Перейдіть на вкладку SQL у верхньому меню.
  • Вставте запит у текстове поле й натисніть «Виконати» (Go):
1SELECT * FROM wp_options WHERE option_name = 'rewrite_rules'
  • У результатах ви побачите один рядок. Натисніть «Змінити» (олівець) навпроти нього.
  • Знайдіть поле option_value, довгий текст із серіалізованими даними. Виділіть увесь вміст поля й видаліть, потім збережіть.
Редагування поля rewrite_rules у phpMyAdmin

Під час наступного завантаження будь-якої сторінки сайту WordPress виявить порожнє значення rewrite_rules, зрозуміє, що правил немає, і згенерує їх заново автоматично. Нічого додатково запускати не потрібно.

Увага: у деяких конфігураціях хостингу префікс таблиць може відрізнятися від wp_. Якщо ваш префікс інший (наприклад, wpxy_), замініть wp_options на wpxy_options. Уточнити префікс можна у файлі wp-config.php, рядок $table_prefix.

Відео: скидання постійних посилань на практиці

Якщо зручніше дивитися, а не читати, у цьому відео показано весь процес скидання постійних посилань першим способом, від входу в адмінку до перевірки результату:

⁉️🤔 Часті запитання

Чи пропадуть мої URL після скидання постійних посилань?

Ні. Скидання (flush) не змінює структуру посилань, задану в «Налаштування → Постійні посилання». Воно лише перебудовує внутрішній кеш правил маршрутизації. Усі ваші адреси /blog/, /product/ і /category/ залишаться точно такими самими. Виняток: якщо ви вручну змінили структуру в налаштуваннях перед збереженням, тоді URL перебудуються за новим шаблоном.

Чи потрібно встановлювати плагін для скидання постійних посилань?

Для разової операції, точно ні. Три способи вище покривають усі сценарії без додаткового софту. Плагіни на кшталт Rewrite Rules Inspector має сенс ставити, тільки якщо ви регулярно реєструєте кастомні типи записів і таксономії в коді й хочете бачити стан правил у реальному часі. Для звичайного виправлення 404 це оверкіл.

Скидання через адмінку не допомогло. Що далі?

Перевірте, чи не перевизначений файл .htaccess іншим плагіном (кешування, безпеки, SEO). Тимчасово деактивуйте підозрілі плагіни й повторіть скидання. Якщо не допомогло, переходьте до способу 2 (PHP), він гарантовано викликає ту саму функцію flush_rewrite_rules() в обхід будь-яких фільтрів адмінки.

Чи можна скинути правила через WP-CLI?

Так, якщо на сервері встановлено WP-CLI, команда wp rewrite flush робить точно те саме з командного рядка. Це найшвидший спосіб для розробників, які працюють через SSH. Виконується миттєво, не потребує відкриття браузера й не залишає слідів у коді теми.

Що робити, якщо після скидання помилка 404 залишилася?

Причина не в постійних посиланнях. Перевірте три речі: (1) чи не видалена сама сторінка або допис фізично, (2) чи не конфліктує slug з іншим контентом або таксономією, (3) чи не блокує запити файл .htaccess із некоректними правилами редіректу. В останньому випадку тимчасово перейменуйте .htaccess на .htaccess.bak, збережіть постійні посилання через адмінку (WordPress створить новий .htaccess) і перевірте знову.

Скинули посилання, що далі?

Ви виконали скидання одним із трьох способів, і сторінка відкрилася. Чудово. Але якщо 404 з’явилася один раз, вона може повернутися: після оновлення плагіна, зміни теми або правок у кастомних типах записів. Покладіть цю інструкцію в закладки, перший спосіб (кнопка «Зберегти» в адмінці) ви тепер знаєте напам’ять і зробите за десять секунд.

І головне правило роботи з базою даних: перед будь-яким втручанням, резервна копія. phpMyAdmin помилок не пробачає, а бекап бази повертає сайт до життя за пару хвилин.