Как сделать сайт Вордпрес мультиязычным

Данное решение подойдет только для тех, кто использует wordpress, в качестве основы сайта. Весь необходимый функционал предоставляет плагин qTranslate. Русский файл перевода уже включён в последние версии плагина qTranslate, но по неизвестным причинам, его нет в списке.

Заходим в настройки > Языки (Settings -> Languages) и вводим следующие данные:

  1. Language Code — ru
  2. Flag — ru.png
  3. Name — Русский
  4. Locale — ru_RU
  5. Date Format — d.m.y
  6. Time Format — %I:%M %p
  7. Not Available Message — Sorry, this entry is only available in %LANG:,: and %.

нажимаем «Добавить язык». После этого Русским можно установить языком по умолчанию.

Когда перейдем на страницу редактирования записи, то вероятнее всего увидите следующее сообщение:

The qTranslate Editor has disabled itself because it hasn’t been tested with your WordPress version yet. This is done to prevent WordPress from malfunctioning. You can reenable it by clicking here (may cause data loss! Use at own risk!). To remove this message permanently, please update qTranslate to the corresponding version.

Это сообщение оповещает нас о том, что плагин не протестирован на текущей версии wordpress. Чтобы избавиться от него, необходимо заменить в qtranslate.php:

define('QT_SUPPORTED_WP_VERSION', '3.4.2');

на

define('QT_SUPPORTED_WP_VERSION', '3.5.1');

Элементы дизайна

Бывают ситуации, когда необходимо использовать разные элементы для разных языковых версий. Например, слайдер меню, который задается в коде или разное меню.

В ситуации с меню, можно создать в ДизайнМеню. Два разных меню и выводить их в зависимости от языка:

Регистрируем в functions.php наши меню:

if ( function_exists( 'register_nav_menu' ) ) {
  register_nav_menus(
    array('ru'=>__('RU Menu'),'en'=>__('EN Menu'),)
  );
}

После этого в админке заполните нужны пунктами и сохраните изменения. Для вывода меню, вставьте в нужном месте следующий код:

if(get_locale() == 'ru_RU') {
        wp_nav_menu(array('theme_location' => 'ru'));
    } elseif(get_locale() == 'en_US') {
        wp_nav_menu(array('theme_location' => 'en'));
    }

Конфликт с плагином All in One SEO Pack

Использование плагина в сочетании с All in One SEO Pack может привести к проблеме дублирования заголовков сайта. Для этого необходимо в functions.php

// Enable qTranslate for WordPress SEO
	function qtranslate_filter($text){
		return __($text);
	}
	add_filter('wpseo_title', 'qtranslate_filter', 10, 1);
	add_filter('wpseo_metadesc', 'qtranslate_filter', 10, 1);
	add_filter('wpseo_metakey', 'qtranslate_filter', 10, 1);
?>

Перенос Вордпрес на новый домен

Когда наступает момент переноса тестового сайта с базой данных на новый хостинг (например с локального сервера на настоящий VDS), необходимо правильно его перенести. Самое основное — это правильно перенести базу данных.

Сохранение файлов

Если необходимо переносить файлы с одного хостинга на другой, то нужно сначала скачать все файлы к себе на компьютер, а потом залить их на новый хостинг. Есть конечно же вариант прямой передачи файлов с одного FTP на другой, но я не буду этого описывать. Пойду путем по проще. Лучше всего для работы с файлами по FTP использовать FileZilla.

После того, как вы сохранили все файлы вашего сайта на WordPress у себя в компьютере, можно сразу же открыть FTP нового хостинга и начать заливать туда.

Пока файлы сайта закачиваются на новый хостинг, есть время сохранить и отредактировать базу данных

База Данных

Заходим в phpMyAdmin своего хостинга. Во вкладке Экспорт меняем положение радиобокса на «Обычный — отображать все возможные настройки» и в пункте Компрессия выбираем ZIP. Далее нажимаем OK и скачиваем.

Теперь все что нужно у нас на компьютере. Для того что бы все сразу нормально заработало, нужно в базе данных изменить старый адрес на новый. Это конечно можно сделать после импорта БД в phpMyAdmin нового хостинга SQL запросами, но это слишком муторно да и не все поймут как это делать. Пойдем путем по проще.

Открываем сохраненный файл БД (файл который находиться в архиве) через любой текстовой редактор (например, Notepad ++)

Сочетанием клавишь CTRL+Н или через меню «Поиск» → «Замена…» вызываем окно:

Вводим название старого домена, например old.site.ru, ниже нового — new.site.ru. И нажимаем на «Заменить все». Потом сохраняем файл (если база данных мало весит, то можно и не архивировать.)

Импорт

После того как вы отредактировали базу данных, необходимо ее залить в пустую базу phpMyAdmin нового хостинга.
Переходим во кладку Импорт нашей phpMyAdmin:

Выбираем БД хранящуюся на компьютере и нажимаем ОК.

wp-config.php

Последний шаг — редактируем настройки WordPress. За подключение сайта к базе данных отвечает файл wp-config.php, который находится в корне вашего сайта. Открываем его через тот же Notepad ++ и редактируем: Вставляем необходимые данные и сохраняем файл.

Можно так же воспользоваться встроенным в редактор FTP-клиентом, чтобы работать с файлами на сервере напрямую, а не перезаливать их каждый раз когда внесли изменения. Меню: Плагин → NppFTP → Show NppFTP window, далее настраиваем его нажав на иконку Setting и редактируем файлы сайта прямо на сервере.