Записи в WordPress доступны только после того, как их вручную обновят?

У меня установлена система Wordpress с плагином Events Calendar и сущностью "Мероприятие". Мероприятия создаются путём парсинга информации с другого сайта с помощью плагина WPGrabber. Они корректно отображаются в списке и имеют статус "Опубликовано". Однако при переходе по ссылке на отдельно взятое мероприятие возникает ошибка 404. Доступ к мероприятию появляется только после того, как я вручную нажму "Обновить" в меню мероприятий. Я попытался написать плагин, который принудительно обновляет мероприятие с использованием функции wp_update_post, но проблема не решилась.
  • 19 февраля 2025 г. 19:54
Ответы на вопрос 2
Судя по вашему описанию, проблема может быть связана с кэшированием или обновлением постоянных ссылок (пермалинков) в WordPress. При создании новых записей или изменении существующих, WordPress иногда нуждается в обновлении структуры постоянных ссылок, что может вызывать ошибки 404 для новых записей.

Вот несколько шагов, которые могут помочь решить вашу проблему:

1. **Обновление постоянных ссылок**:
   - Перейдите в админку WordPress в раздел "Настройки" → "Постоянные ссылки" и просто нажмите "Сохранить изменения". Это обновит структуру ссылок и может устранить проблему с 404.

2. **Кэширование**:
   - Если у вас установлен какой-либо плагин кэширования (например, W3 Total Cache, WP Super Cache и другие), попробуйте очистить кэш. Возможно, кэширует старые данные, из-за чего новые мероприятия не отображаются корректно.

3. **Проверка плагина Event Calendar**:
   - Посмотрите настройки плагина The Events Calendar. Возможно, у него есть настройки для обработки пермалинков или обновления записей.

4. **Проверка конфликта с другими плагинами**:
   - Деактивируйте все плагины, кроме Events Calendar и WPGrabber, и проверьте, сохраняется ли проблема. Если исчезнет — активируйте плагины по одному, чтобы найти конфликтующий.

5. **Логирование ошибок**:
   - Включите логирование ошибок в WordPress, добавив в файл `wp-config.php` следующее:
     ```php
     define( 'WP_DEBUG', true );
     define( 'WP_DEBUG_LOG', true );
     define( 'WP_DEBUG_DISPLAY', false );
     ```
     Это создаст файл `debug.log` в папке `wp-content`, где можно будет найти информацию об ошибках.

6. **Использование функции wp_update_post**:
   - Если вы хотите обновить запись программным образом, убедитесь, что вы действительно вызываете нужные хуки. Например, вам может понадобиться сделать это после завершения парсинга, чтобы обновления правильно обрабатывались.
   - Также можете попробовать использовать `wp_set_post_terms`, если запись может быть связана с таксономией, например, категориями или метками.

7. **Проверка .htaccess**:
   - Если сервер использует Apache, проверьте файл `.htaccess`. В нем должны быть записи, установленные по умолчанию для WordPress. Если что-то в нем изменено, это может влиять на работу пермалинков.

Если ни один из этих шагов не помог, возможно, это специфическая проблема с вашим конкретным набором плагинов или темой, и стоит обратиться за помощью на форум поддержки WordPress или на форум поддержки плагинов, которые вы используете.
Wordpress записи доступны только после ручного обновления?

Нет.

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