Патчим iNove: ссылка «На главную» и плагин qTranslate
Наверняка, вы встречали в сети сайты, использующие несколько языков и известную тему WordPress iNove, и обратили внимание, что при переключении на язык, отличный от дефолтного, ссылка «На главную/Home» перебрасывает вас на главную страницу дефолтного, а не выбранного вами языка (посмотреть как это работает можно, выбрав на моем сайте тему iNove, переключив сайт на английский и кликнув по ссылке «Home»). Лично я встречал немало таких сайтов в сети.
Как же это исправить? Достаточно просто: iNove использует функцию get_settings(‘home’) для получения корневой ссылки на блог (берет ссылку из настроек блога), а нам нужна функция bloginfo(‘url’), которая возвращает ссылку, уже обработанную плагином qTranslate – всего-то и нужно – заменить в коде одну функцию на другую.
- Редактируем файл single.php, он отвечает за формирование линка вида «Главная > Без категории > Эта статья» вверху страницы под шапкой. Находим строку
<a title="<?php _e('Go to homepage', 'inove'); ?>" href="<?php echo get_settings('home'); ?>/"><?php _e('Home', 'inove'); ?></a>и меняем ее на
<a title="<?php _e('Go to homepage', 'inove'); ?>" href="<?php bloginfo('url') ?>/"><?php _e('Home','inove'); ?></a> - Редактируем файл templates/header.php, он отвечает за формирование шапки страницы. Находим строку
<li><a title="<?php _e('Home', 'inove'); ?>" href="<?php echo get_settings('home'); ?>/"><?php _e('Home', 'inove'); ?></a></li>и меняем ее на
<li><a title="<?php _e('Home', 'inove'); ?>" href="<?php bloginfo('home'); ?>/"><?php _e('Home', 'inove'); ?></a></li>
Вот и все, перечитываем страницу в браузере, переключаемся на неосновной язык и проверяем работоспособность ссылок.
Hy, I have iNove and qTranslate, I have this problem, I have tried to fix it this way but it does not work, I have been reading countless forums and sites on how to fix this but cant’ find a way to do it.
Did you fix your site with these codes exactly?
Thank you.
@calabro
Yes, this is the exact code from renamed iNove theme I modified (Onyx iNove, default for my blog). Basically you need to replace get_settings() function with bloginfo() keeping the rest intact.
I have been trying for time to fix it, still does not work!
The problem is the «/» at the end of the path, when I click on home it gives me (for example) «http://www.mysite.org/site/?lang=it/» and it does not work, but if I manually remove the «/» at the end, it goes to the right language.
Do you have any idea of how to make it so that when i click home, it does not add the «/» at the end??
Thanks
@calabro
I’d recommend to switch to mysite.org/it/site/ format instead of «?lang=it» – this way your issue with tailing slash would be solved forever. It’s under qTranslate advanced settings. As for the trailing slash – it could be the result of rewrite rule in .htaccess, plugin or whoever knows what else.