Intereting Posts
Как сохранить настраиваемые поля для вложений Включить комментарии к пользовательским типам сообщений в теме каталога Выход короткого кода появляется перед телом Как заблокировать с дочерней темой определенные страницы? Очистка кэшированных данных плагина, если используется кеш внешнего объекта Остановить wordpress от удаления атрибутов HTML Какой язык кодирования использовать? Как всегда переписывать URL страницы архивного архива, даже если у автора нет сообщения WP User Meta в URL-адресе QR-кода Дублированный сайт WordPress STILL, связанный со старым сайтом Получить пользовательское имя таксономии (а не термин) в пользовательском сообщении лучший способ переопределить плагин CSS? Отображение ссылки на PHP только в том случае, если администратор зарегистрирован Как редактировать пользовательский интерфейс метаинформации Как мне документировать вызовы функций?

Создание пользовательской структуры константной ссылки для языков

Я написал простую многоязычную систему, в которой нажатие на значок флага устанавливает однолетний файл cookie, содержащий двухбуквенный код языка (например, nl, de и т. Д.).

Я подключаюсь к действию wp чтобы прочитать значение cookie, затем используйте фильтры the_title и the_content чтобы показать правильный язык (различные языки вводятся через обмены на экране редактирования страницы / сообщения).

Все это отлично работает, за исключением того, что я хотел бы иметь постоянные ссылки для каждой языковой версии, в которой код с двумя буквами находится между именем домена и обычной структурой постоянной ссылки. Я использую структуру %postname% permalink, поэтому все следующие действия будут действительны:

 http://example.com/nl/about-us http://example.com/de http://example.com/fr/2012/03 http://example.com/es/this-is-a-post-title 

Если текущим языком является английский, тогда не следует использовать два буквенных кода (это будет нормальная постоянная ссылка).

До сих пор я использовал фильтр query_vars чтобы добавить запрос var, называемый lang , но это далеко не все, я уверен, что следующие шаги. Любые советы очень ценятся!

Ваш вопрос достаточно сложный, чтобы ответить сам, но я бы предложил вам установить плагин qTranslate . Как говорится в описании плагина:

Выберите один из 3-х режимов, чтобы сделать ваши URL-адреса хорошими и оптимизированными для SEO. – везде совместимый? Lang = en, простой и красивый / en / foo / или красивый и опрятный en.yoursite.com

Поэтому вы можете попробовать проверить код плагина и посмотреть, как они это делают, или просто использовать его вообще.

Это фильтр, который я использую:

 function em_wpml_dbem_taxonomy_category_slug($option){ $lang = get_bloginfo('language'); if( $lang === 'es-ES' ){ $option = 'eventos/categorias'; } else { $option = 'events/categories'; } return $option; } add_filter('pre_option_dbem_taxonomy_category_slug', 'em_wpml_dbem_taxonomy_category_slug');