WordPress + Polylang – Ошибка 404 при попытке просмотреть черновик поста на другом языке

Вопрос или проблема

Итак, я установил Polylang, и проблема, с которой я столкнулся, связана с функцией предварительного просмотра постов на моем сайте WordPress. Когда я предварительно просматриваю пост на языке, отличном от стандартного, меня переводит на страницу с ошибкой 404, если я вручную не изменю домен с текущего на домен “.cz”. (Я использую разные доменные зоны верхнего уровня для каждого языка). Я хочу найти решение, которое позволит функции предварительного просмотра постов работать правильно с плагином Polylang на каждом языке.

Все обновления установлены, все актуально.

Спасибо!

Я знаю, что я опоздал на 2 часа, но у меня была такая же проблема. Я переписал URL, чтобы игнорировать функциональность polylang следующим образом:

if ( (isset($_GET['page_id'])) || (isset($_GET['preview']) && $_GET['preview'] === 'true') ) {
    $query->query_vars['pagename'] = '';
}

Проблема в том, что polylang добавляет /{new-language}/ к URL, но WP рассматривает это как страницу. Эта функция игнорирует это и тем самым решает проблему.

Ответ или решение

Ошибка 404 при попытке предпросмотра черновика поста на другом языке в WordPress с плагином Polylang – это распространённая проблема, связанная с неправильным перенаправлением на странице предпросмотра. В этой статье мы рассмотрим причины возникновения данной ошибки и возможные способы её решения.

Причины возникновения ошибки 404

Когда вы устанавливаете плагин Polylang, он добавляет функциональность, позволяющую создавать многоязычный контент, однако это может повлиять на управление URL-адресами. Если вы используете разные доменные зоны (TLD) для каждого языка, ошибки могут возникать при предпросмотре черновиков, так как WordPress обрабатывает URL-адреса без учета языкового контекста.

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

Способы решения проблемы

  1. Проверка настроек Polylang: Убедитесь, что все настройки Polylang корректно сконфигурированы для работы с несколькими доменами. Перейдите в раздел "Языки" и убедитесь, что для каждого языка установлен соответствующий домен.

  2. Изменение структуры постоянных ссылок: Попробуйте сохранить настройки постоянных ссылок. Перейдите в "Настройки" » "Постоянные ссылки" и нажмите "Сохранить изменения". Это может помочь в обновлении пермалинков и устранении временных ошибок.

  3. Код для игнорирования языковых параметров: Как вы упомянули, можно использовать кастомный код для обработки предпросмотра. Приведенный вами фрагмент кода может быть улучшен для обработки URL-адресов при предпросмотре черновиков. Вот пример кода, который может помочь:

    add_action('pre_get_posts', function($query) {
       if (is_preview() && (isset($_GET['page_id']) || (isset($_GET['preview']) && $_GET['preview'] === 'true'))) {
           // Игнорируем текущий язык на странице предпросмотра
           unset($query->query_vars['lang']);
       }
    });

    Этот код должен добавляться в файл functions.php вашей темы или в отдельный плагин, чтобы избежать проблем с обновлениями темы.

  4. Проверка других плагинов и конфликтов: Иногда другие плагины могут конфликтовать с Polylang. Отключите временно все плагины, кроме Polylang, и проверьте, сохраняется ли ошибка 404. Затем постепенно включайте плагины, чтобы выявить потенциальный конфликт.

  5. Тестирование на чистой установке WordPress: Если проблема продолжает возникать, попробуйте установить WordPress на локальном сервере или на другом хостинге и настройте только Polylang. Это поможет вам определить, является ли проблема специфической для вашего окружения или конфигурации.

Заключение

Решение проблемы с ошибкой 404 при предпросмотре черновиков на разных языках в WordPress с использованием Polylang требует проверки различных настроек. Следуя вышеуказанным рекомендациям и подходам, вы сможете диагностировать и устранить проблему. Если же ни один из методов не сработает, стоит рассмотреть возможность обращения к разработчику плагина или консультанту по WordPress для более детального анализа ситуации.

Оцените материал
Добавить комментарий

Капча загружается...