Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 53

Автоматическая смена языка главного навигационного меню

25.04.2019, 11:31. Показов 2040. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Подскажите пожалуйста!
Сайт имеет две языковые версии, вопрос с выводом произвольного навигационного меню под каждую версию. Родительская страница одной из версий имеет url вида site.ru/fr/, указал, что при совпадении url с префиксом /fr/ показывалась версия на французском, это работает, но как можно захватить и дочерние страницы вида /fr/page1, /fr/page2 и тп. чтобы язык меню оставался французским? Понимаю, что работаю с движком, но, как мне показалось, вопрос более уместен именно по ветке php. Код того, что есть прикладываю:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        <?php 
            if ($_SERVER["REQUEST_URI"]=="/fr/") {
            wp_nav_menu([
                    'menu' => 'main-nav-fr',
                    'container' => 'div',
                    'container_class' => 'main-nav-wrap',
                    'depth' => '0',
                ]);
            } else {
            wp_nav_menu([
                    'menu' => 'main-nav-en',
                    'container' => 'div',
                    'container_class' => 'main-nav-wrap',
                    'depth' => '0',
                ]); }
        ?>
Заранее спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.04.2019, 11:31
Ответы с готовыми решениями:

Динамическое навигационного меню не отображается
Добрый день,начал изучать php по курсам Борисова,дошел до лабораторной работы по созданию динамического меню ,после вроде как правильно...

Подключение навигационного меню к сайту
Дорого времени суток. Создаю простой сайт. Страниц будет много. Разумно использовать Include и т.п. Вопрос встал из-за того, что по...

автоматическая смена времени года
сделал смену времени года автоматически а именно добавил в нужное место class=&quot;month-&lt;?php echo date('m'); сделал /*...

6
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
25.04.2019, 12:49
Лучший ответ Сообщение было отмечено karkomak как решение

Решение

karkomak,
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
$lang = explode('/', trim($_SERVER["REQUEST_URI"], '/'))[0];
$langs = ['en', 'fr']; // массив с набором локалей ('en' - по умолчанию)
$lang = in_array($lang, $langs) ? $lang : $langs[0];
 
wp_nav_menu([
    'menu' => "main-nav-{$lang}",
    'container' => 'div',
    'container_class' => 'main-nav-wrap',
    'depth' => '0'
]);
1
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 53
25.04.2019, 13:04  [ТС]
Все работает! Спасибо большое! Пытаюсь разобраться теперь почему работает)
Спасибо спасибо спасибо!
1
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
25.04.2019, 13:08
Цитата Сообщение от karkomak Посмотреть сообщение
Пытаюсь разобраться теперь почему работает)
(( ))
0
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 53
25.04.2019, 13:11  [ТС]
Ну просто это тоже важно, а то магия какая-то) Хочу понять что к чему
0
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
25.04.2019, 13:23
Лучший ответ Сообщение было отмечено karkomak как решение

Решение

Цитата Сообщение от karkomak Посмотреть сообщение
Ну просто это тоже важно, а то магия какая-то) Хочу понять что к чему
Это похвально ) Я могу проставить комментарии в коде, если это необходимо:
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// С помощью trim(, '/') отбрасываются слеши "/" в начале и в конце URI
// Полученный URI разбиваем на массив с помощью explode(), и сразу извлекаем
// первый элемент этого массива с помощью индекса [0]
$lang = explode('/', trim($_SERVER["REQUEST_URI"], '/'))[0];
 
// С массивом всё должно быть понятно
$langs = ['en', 'fr']; // массив с набором локалей ('en' - по умолчанию)
 
// Выполняем поиск по массиву, если значение $lang совпадает с 
// любым элементом из массива $langs, то используем $lang,
// иначе - используем первый элемент массива $langs[0]
$lang = in_array($lang, $langs) ? $lang : $langs[0];
 
wp_nav_menu([
    // Значение переменной $lang подставляем в значение ключа 'menu'
    'menu' => "main-nav-{$lang}",
    'container' => 'div',
    'container_class' => 'main-nav-wrap',
    'depth' => '0'
]);
1
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 53
25.04.2019, 13:42  [ТС]
Просто нереальное спасибо!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.04.2019, 13:42
Помогаю со студенческими работами здесь

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

Смена языка
Как поменять язык в PHP с англ на русский, а то у меня когда включаю браузер выходяк какие то вопросики вместо букв( что делать подскажи...

Дублируются get (смена языка)
Дорогие друзья, никак не могу разобратся, почему дублируются get ? К примеру lala.ru/?lang=lat?lang=ru?lang=lat?lang=ru и ...

Смена языка (с выбором из бд)
Добрый День! Изучаю php/mysql и возник вопрос как можно организовать смену языка на сайте (не на сессиях и куках) а чтобы пользователь...

Смена языка месяца
есть фрагмент кода, вот в ней надо перевести месяц с англ на русский, я не очень разбираюсь в php, поэтому ломал голову долго и так и не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru