Главная > Сайт > Патчим iNove: ссылка «На главную» и плагин qTranslate

Патчим iNove: ссылка «На главную» и плагин qTranslate

21 февраля 2010 vagabond 2412 просмотров К комментариям

Наверняка, вы встречали в сети сайты, использующие несколько языков и известную тему WordPress iNove, и обратили внимание, что при переключении на язык, отличный от дефолтного, ссылка «На главную/Home» перебрасывает вас на главную страницу дефолтного, а не выбранного вами языка (посмотреть как это работает можно, выбрав на моем сайте тему iNove, переключив сайт на английский и кликнув по ссылке «Home»). Лично я встречал немало таких сайтов в сети.

Как же это исправить? Достаточно просто: iNove использует функцию get_settings(‘home’) для получения корневой ссылки на блог (берет ссылку из настроек блога), а нам нужна функция bloginfo(‘url’), которая возвращает ссылку, уже обработанную плагином qTranslate – всего-то и нужно – заменить в коде одну функцию на другую.

  1. Редактируем файл 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>
    
  2. Редактируем файл 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>
    

Вот и все, перечитываем страницу в браузере, переключаемся на неосновной язык и проверяем работоспособность ссылок.

VN:F [1.9.0_1079]
Rating: 0.0/10 (0 votes cast)
Категории:Сайт Метки:, ,
  1. calabro
    calabro
    13 марта 2010 в 03:37 | #1

    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.

    UN:F [1.9.0_1079]
    Rating: 0 (from 0 votes)
  2. vagabond
    vagabond
    13 марта 2010 в 15:51 | #2

    @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.

    UA:F [1.9.0_1079]
    Rating: +2 (from 2 votes)
  3. calabro
    calabro
    14 мая 2010 в 00:19 | #3

    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

    UN:F [1.9.0_1079]
    Rating: 0 (from 0 votes)
  4. vagabond
    vagabond
    14 мая 2010 в 16:30 | #4

    @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.

    UA:F [1.9.0_1079]
    Rating: 0 (from 0 votes)
  1. Уведомлений нет.

Spam Protection by WP-SpamFree