Отключить перезапись home_url с помощью плагина WPML

Я использую подключаемый модуль WPML Wordpress для перевода своего веб-сайта. Мой язык по умолчанию — французский. Когда я нахожусь на переведенной странице, home_url() переписывается с текущим языком. Как я могу отключить эту перезаписи, чтобы мой home_url() всегда перенаправлял на французскую домашнюю страницу?

Перевести URL страницы: http://www.mydomain.com/en/test/

Фактическое home_url() : http://www.mydomain.com/en/

Желаемый home_url() : http://www.mydomain.com/

Я уже пробовал эти решения:

http://wpml.org/forums/topic/wpml-overwrites-home_url-to-append-language-suffix/ http://wpml.org/documentation/support/creating-multilingual-wordpress-themes/home-page-link/ http://wpml.org/forums/topic/wpml-changed-my-default-home-url/

Извините за мой плохой английский и спасибо за помощь! Дайте мне знать, если мне нужно предоставить какую-либо другую информацию.


person lefoy    schedule 02.10.2013    source источник


Ответы (2)


Я думаю, вы могли бы переопределить то, что делает WPML, и переопределить home_url() так же, как это делается, используя хук/фильтр «home_url» и получить URL-адрес без языка, используя $_SERVER['SERVER_NAME']; или как-то иначе.

Может быть, что-то вроде этого может работать:

add_filter( 'home_url', 'fix_home_url_lang', 100, 4 );

function fix_home_url_lang( $url, $path, $orig_scheme, $blog_id ) {
  return 'http://' . DOMAIN_CURRENT_SITE . PATH_CURRENT_SITE . $path;
}

Это не учитывает мультисайты, которые вы могли бы иметь, поэтому будьте осторожны. Кроме того, возможно, вам следует использовать параметры, переданные функции, чтобы определить нужный URL-адрес.

person polo200    schedule 02.10.2013

Спасибо за ответ!

Я немного подправил вашу функцию. Вот моя последняя функция:

add_filter('home_url', 'fix_home_url_lang', 100, 4);

function fix_home_url_lang($url, $path, $orig_scheme, $blog_id) {
  return 'http://' . DOMAIN_CURRENT_SITE . PATH_CURRENT_SITE . $path;
}
person lefoy    schedule 02.10.2013