Створення користувацької структури постійної посилання для мов


9

Я написав просту багатомовну систему, завдяки якій натисканням на значок прапора встановлюється однорічне печиво, яке містить код з двома літерами (наприклад, nl, de тощо).

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

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

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, але це поки що у мене є, я не знаю, які наступні кроки. Будь-яка порада дуже вдячна!



1
дякую @ l2aelba, ця відповідь досить близька до того, що мені потрібно з незначними змінами.
Саймон Блекборн

Чи є у вас субдомени для цього або лише одного веб-сайту
kennethjfalbous

лише один веб-сайт
Саймон Блекборн

Відповіді:


1

Ваше запитання досить складне, щоб відповісти сам, але я б запропонував вам встановити qTranslateплагін. Як говорить опис плагіна:

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

Тож ви можете спробувати перевірити код плагіна і подивитися, як вони це роблять, або просто використовувати його взагалі.


1
дякую за посилання, я перегляну, чи зможу я деконструювати код.
Саймон Блекборн

-1

Це фільтр, який я використовую:

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');

2
Будь ласка, додайте пояснення до своєї відповіді - дякую.
Миколай
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.