Intereting Posts
Необходимо заменить слова в тексте специальными синонимами .rar, .zip-файлы MIME-тип 500 Внутренняя ошибка сервера с использованием PHP и SQLite Magento 1.7 Не удается отправить заголовки; заголовки, уже отправленные SQL / PHP: получить все результаты в течение времени от X до Y и определить, есть ли промежутки времени между ними Zend Framework $ this-> baseUrl () всегда возвращает текущую страницу :( почему многоуровневое меню из базы данных в codeigniter PHP: имя oci_bind_by_name и timestamp приводит к «ORA-01461: может привязывать значение LONG только для вставки в столбцы LONG» Цена дисплея WooCommerce на кнопку добавления в корзину Неустранимая ошибка: нельзя использовать объект типа mysqli_result как массив в /home/william/public_html/forums/index.php в строке 228 Выбор переключателей PHP Mysql Как заменить класс Laravel Builder Преобразование массива с 50 000 + записей в базу данных mysql Как получить ответ на несколько пунктов цены на рынке Zend Framework 2: Как создать собственный User-навигатор для ZfcUser

Сохраните строку, добавленную в запрос uri

Я создаю веб-сайт WordPress с двумя языковыми поддержкой на английском и датском языках.

Я хочу сохранить строку кода языка en для английского языка, а da для датского языка – в запросе uri.

Например: (В настоящее время это работает для меня)

 http://example.com/da 

Если я посещаю почту или страницу, она должна быть такой: (Это не работает, получается 404)

 http://example.com/da/post-name http://example.com/da/page-name http://example.com/da/post/is/too/long 

Я также попробовал API перезаписи WordPress

add_rewrite_rule() (Переписывайте правила, которые у меня есть)

 <?php add_action('init', function () { add_rewrite_rule( '^(da|en)/?', //Regex 'index.php?lang=$matches[1]', //request to 'top' //called earlier than wordpress rules ); }); 

а также add_rewrite_tag() , но я думаю, что WordPress просто предоставляет add_rewrite_endpoint (и мне это совсем не нужно).
Я думаю, что это возможно только при условиях htaccess %{QUERY_STRING} ? (Не знаю)

.htaccess:

 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress 

Редактировать:
Я использую WP Native Dashboard для перевода на страницах администратора, но на фронте я просто использую __() и _e() с файлами .mo и .po и отлично работает.

PS:
Эта проблема не специфична для веб-сайта WordPress, мне также нужна эта помощь с веб-сайтами на основе веб-сайтов в будущем. Предоставьте мне .htaccess правила / условия, если сможете.

Если бы я был вами, я бы использовал плагин вместо внедрения с нуля. Вы можете использовать этот плагин для многоязычного сайта wp. Этот плагин предоставляет вам три типа структуры URL-адресов;

  1. ?lang=en
  2. /en/foo/
  3. en.yoursite.com

Если вы хотите использовать для пользовательского сайта, вы можете использовать следующее правило перезаписи;

 RewriteEngine On RewriteBase / RewriteRule ^(en|da)/(.*)$ /$2?language=$1 [QSA,L] 

Я предполагаю, что вы используете language параметр для языка

Изменить: Есть некоторые ошибки в плагине qTranslate. Эти ошибки могут быть разрешены с помощью дополнительного плагина, называемого qTranslate Slug . Не забудьте использовать этот дополнительный плагин, если у вас возникли проблемы с шаблоном url

Надеюсь, вам нужно проверить настройку сервера, если модуль перезаписи неактивен. С вашего сервера держите модуль перезаписи активным.

Я удалил свой ответ, так как кажется, что плагин должен обрабатывать переписанные URL-адреса, например example.com/da/post-name …

На данный момент WP загружается, когда вы посещаете любой URL, и отображается «WP 404 error».

ИЗМЕНИТЬ 3:

Кажется, что все работает как ожидалось в соответствии с вашим последним комментарием: «Сейчас я вручную вставляю en / da в url …»