Дано: двуязычный сайт аглийский/французский, тоесть два WordPress
английский WP установлен в корне домена
французский WP - domain.com/fr/
Помыслы заказчика неисповедимы, и в самом конце возникло требование стартовым сделать французскую версию.
Задача: как это сделать? двигать файлы нельзя (вернее можно но возникнет большая работа по перелопачиванию ссылок), сабдомены не поддерживаются.
if (!isset($_COOKIE['lang']) && !isset($_GET['lang'])) {
$baseUrl = dirname($_SERVER['PHP_SELF']);
header('Location: ' . $baseUrl . '/fr/' . substr($_SERVER['REQUEST_URI'], strlen($baseUrl)+1), TRUE, 303);
exit();
}
if (isset($_GET['lang'])) {
setcookie('lang', $_GET['lang']);
}
двигать файлы нельзя (вернее можно но возникнет большая работа по перелопачиванию ссылок)
шо там за большая работа?
берем дамп базы и в текстовом редакторе делаем "заменить все" старый базовый URL на новый. сносим таблицы и заливаем базу из полученного дампа. все.
если, конечно, не угораздило где-то в коде захардить..
подкорректировать virtual hosts в настройках апача нельзя?
или в .htaccess
RewriteEngine on
RewriteBase /
RewriteRule ^$ fr/ [R=301,L]
потому что в базе нужно заменить всего 2 поля в таблице wp-options.
так кошернее?И лучше это делать не в текстовом редакторе, а в phpmyadmin.
могут храниться сериализованные данные, и после такой замены они похерятся.
Это делать ни в коем случае нельзя и не нужно!!!
Нельзя - потому что в базе, например когда вы сохраняете что-то в customfield, или options - могут храниться сериализованные данные, и после такой замены они похерятся.
Не нужно - потому что в базе нужно заменить всего 2 поля в таблице wp-options. И лучше это делать не в текстовом редакторе, а в phpmyadmin.