Субдомен вместо одной страницы

Цель:
Хочу создать страницу в вордпресе, на которую можно попасть с субдомена.
Т.е страница привязана таким образом: заходим на субдомен – получаем содержимое страницы.
Итак есть сайт, к примеру coffee.zp.ua, на нем страница coffee.zp.ua/venson

Нужно чтобы venson.coffee.zp.ua показывала содержимое coffee.zp.ua/venson (ЧПУ /%postname%/)

Сейчас в .htaccess (в корне сайта который лежит) вот что: Redirect 301 /venson http://venson.coffee.zp.ua
В результате при переходе на coffee.zp.ua/venson, перебрасывает на venson.coffee.zp.ua и получаю содержимое главной страницы,
хотя хотел получить содержимое страницы /venson

Уважаемые специалисты, как это сделать правильно средствами апача, вордпреса?
Подозреваю, что в .htaccess алиас прописать нужно, только как?

З.Ы. Извиняюсь за активные ссылки (((

Сам разобрался. Решение:
1) Регим в зоне coffee.zp.ua субдомен venson, который вешаем на подпапку рута нашего вордпреса /public_html/coffee.zp.ua/venson (вордпрес установлен в /public_html/coffee.zp.ua)
2) В созданную подпапку venson копируем index.php и изменяем в нем строку require(‘./wp-blog-header.php’); на require(‘../wp-blog-header.php’);
3) В корне сайта (/public_html/coffee.zp.ua) ставим .htaccess в который пишем редирект такого вида: Redirect 301 /venson http://venson.coffee.zp.ua
4) Выясняем ID нужной страницы секретным методом – http://codex.wordpress.org/Function_Reference/get_page
4) Теперь правим index.php нашей (в моем случае дочерней) темы в месте где выводится контент:
БЫЛО

...
<?php if ( have_posts() ) : ?>
    <?php twentyeleven_content_nav( 'nav-above' ); ?>
    <?php /* Start the Loop */ ?>
    <?php while ( have_posts() ) : the_post(); ?>
        <?php get_template_part( 'content', get_post_format() ); ?>
    <?php endwhile; ?>
    <?php twentyeleven_content_nav( 'nav-below' ); ?>
<?php else : ?>
...

СТАЛО (определяем что выводить по переменной SERVER_NAME – http://php.net/manual/ru/reserved.variables.server.php)

...
<?php if ( have_posts() ) : ?>
    <?php twentyeleven_content_nav( 'nav-above' ); ?>
    <?php if (strpos($_SERVER["SERVER_NAME"], 'venson.coffee.zp.ua') !== false) : ?>
        <?php   // ### Dobavleno dlya promo stranici
            $promo_page_id = 415; // original page = '/venson
            $page_data = get_page( $promo_page_id );  
            $content = apply_filters('the_content', $page_data->post_content);
            $title = $page_data->post_title;
            echo $content;
        ?>
    <?php else : ?>
        <?php /* Start the Loop */ ?>
        <?php while ( have_posts() ) : the_post(); ?>
            <?php get_template_part( 'content', get_post_format() ); ?>
        <?php endwhile; ?>
        <?php twentyeleven_content_nav( 'nav-below' ); ?>
    <?php endif; ?>
<?php else : ?>
...

В итоге получаем полное содержимое страницы на субдомене. Даже сайдбар есть, хотя в сегодняшнем будущем я все кастрирую до уникального шаблона.
Поисковики вообще ничего о странице не знают. При переходе на страницу coffee.zp.ua/venson получаем субдомен venson.coffee.zp.ua.
Не забываем ручками рихтовать sitemap.xml (мая юзать плагин XML-Sitemap), страничку – исключаем из списочка, субдомен включаем в списочек.
Управляем как обычной страницей из под админки.
Решение не очень красивое, но работает четко. Если кто придумает красивее – пишите!

P.S.
Не хватило терпения доделать: для нормальной работы статистики и всяких нужных плагинов нужно ограничить влияние субдомена до отображения контента единственной странички.
Несмотря на такое положение дел, линки формируются правильно – на батьковский домен.

Адьос

Другой вариант:

1. Прикрепить субдомен к папке самого WordPress (в данном случае /public_html).
2. Добавить в functions.php активной темы подобный фрагмент:

function add_venson_template() {
    if ( false !== strpos($_SERVER['HTTP_HOST'], 'venson') ) {
        include(TEMPLATEPATH . '/venson.php');
        exit;
    }        
}
add_action('template_redirect', 'add_venson_template');

3. Создать в каталоге темы файл venson.php, в котором и оформить вывод нужных данных.

Sergey Biryukov, спасибо, гдеш вы вчера были с этим template_redirect ?
Все равно решение лучше моего 😉

Вот статья с разжовыванием секретного "template_redirect":
http://www.mihaivalentin.com/wordpress-tutorial-load-the-template-you-want-with-template_redirect/

Anonymous
Отправить
Ответ на: