Необходимо привязать к каждой региональной странице свой субдомен, например для sample.com/sub - надо чтобы показывалась страница по sub.sample.com (в браузере чтобы этот адрес и оставался. Без редиректа).
Multisite не предлагать.
В поисковике находится совет: поддомен в виде алиаса должен быть прицеплен к корневой папке, тогда код для functions.php темы:
<?php
function hijack_page() {
// делим URL и проверяем, является ли первая часть поддоменом.
$pieces = explode( '.', $_SERVER['HTTP_HOST'] );
$subdomain = array_shift( $pieces ); // получаем первую часть разделенного URL
// получаем адрес страницы после домена
$pieces = explode('/', $_SERVER['REQUEST_URI']);
array_shift($pieces);
$slug1 = array_shift($pieces); // получаем первую часть окончания URI страницы
// Проверяем, существует ли страница и отличается ли поддомен от "www"
if($slug1 && $subdomain != "www"){
// получаем основные переменные запроса WP query для получение содержимого страницы
global $query_string;
// выполняем запрос the query posts чтобы получить желаемую страницу
query_posts($query_string.'&pagename='.$subdomain.'/'.$slug1);
return;
}
}
hijack_page();
?>
Но он у меня не работает :( Открывает просто главную страницу.
И второй способ - в отдельной папке созданного поддомена на хостинге создать index.php и там:
<?php
$_GET['page_id']=XXX; //XXX — ID вашей страницы
require('../wp-blog-header.php');
?>
Но тоже не работает. Error 500 (Глубже пока не копал)