Поддомены. Одна копия WordPress, одна БД.

Так как хостинг у Моего хостера не резиновый, и позволяет создать лишь 10 сайтов (баз данных, …), а сервер не виртуальный (где можно было бы добавить маску Apache, например), резко встаёт вопрос:
Нужно создать кучку поддоменов для сайта, не создавая отдельные БД и отдельные копии WordPress. Так как шаг 2 инструкции по созданию мультисайта отпадает, думаю, что метод “Несколько сайтов на одной копии WordPress” вполне подходит. Только вот чего-то Я, видимо, совсем тупой, что не смог осилить, куда там домены-поддомены вписывать.
Вот дал Мне добрый человек хороший пример кода:

$table_prefix  = 'wp_';
if ( strpos($_SERVER['HTTP_HOST'], 'abc-japan.ru') !== false )
	$table_prefix  = 'wp2_';

Отлично понимаю, что к чему здесь.
Первая строка – она там и была; вторая строка – это условие. Читаю так:

если (запрошеный сервер - abc-japan.ru) не равноравно неправде)
	для него переменная префикса таблицы будет wp2_ 

Но в таком случае нужно создавать новую БД, так? Всего их могу создать 10, 3 уже создано. Поддоменов нужно 6. В общем, некрасиво и неэргономично выходит. А если понадобятся ещё поддомены?
Как бы это всё с под-таблицами, как в мультисайте, замутить?

18 Комментарии

  1. нет, в этом случае будут использоваться таблицы с префиксом wp2_, БД новую создавать нет необходимости

      • Не понял этот комментарий. Выше совершенно верно написали, что в рассматриваемом примере используется одна БД. Иначе нужно было бы менять не префикс, а DB_NAME.

          • это просто название БД, нажмите на нее и должны увидеть нечто наподобие wp_commentmeta, wp_comments, …
            вот wp_ и есть префикс таблицы

            а вообще слишком мало информации чтобы можно было надумать решение вашей проблемы

      • Новый префикс = новая таблица, но одна и та же база данных. Настройки префикса и базы данных выставляются в wp-config.php. По-моему это самый простой и самый удобный способ использовать одну базу данных для нескольких блогов.

  2. Так. Вот этот код будет верным?

    $table_prefix  = 'wp_';
    if ( strpos($_SERVER['HTTP_HOST'], 'oho.abc-japan.ru') !== false )
    	$table_prefix  = '_abc-oho';
    if ( strpos($_SERVER['HTTP_HOST'], 'ju.abc-japan.ru') !== false )
    	$table_prefix  = '_abc-ju';
    if ( strpos($_SERVER['HTTP_HOST'], 'opora.abc-japan.ru') !== false )
    	$table_prefix  = '_abc-opora';
    • ой. забыл убрать лишние закрывающие коды. когда уже наконец можно будет редактировать комментарии и записи? :) или хотя-бы предпросмотр.

    • А что, один wp-config на все три блога будет? Не понял, зачем указывать условия. Если будет три движка, то будет и три файла wp-config.php, в каждом из которых будет своя строчка:

      $table_prefix  = 'wp_abc-oho';
      или
      $table_prefix  = 'wp_abc-ju';
      или
      $table_prefix  = 'wp_abc-opora';

      При установке каждого из блогов нужно указать свой префикс, а вот путь к базе данных, логин в нее и пароль будет один и тот же.

      • Я хотел сделать как-раз один движок (abc-japan.ru) на все поддомены (oho.abc-japan.ru, ju.abc-japan.ru, … ) с помощью приёмчика, описанного в кодексе: Несколько сайтов на одной копии WordPress.
        Как понимаю, table_prefix добавляет таблицы в БД. Например, в БД japantot_abc, внутрь, там, где wp_posts, добавит wp_oho_posts, да?
        Блин, туплю >.< спать уже надо в 2 часа ночи. Утром попробую сделать это на живом сайте — кажется, понял, что к чему.
        Диалог сам-с-собой… всё, спать.

        • Понятно. Тогда да, все правильно – прописывай вышеприведенные условия. Но мне кажется, ты слишком мудришь – не стоит это того из-за пары лишних мегабайт на хостинге. Да и надежность (я уже писал как-то об этом) будет под вопросом.

  3. Всё получилось ^^
    Добавил вот такой код:

    $table_prefix  = 'wp_';
    if ( strpos($_SERVER['HTTP_HOST'], 'oho.japan-tottori.ru') !== false )
    	$table_prefix  = 'wp_oho_';
    

    И сайт на поддомене ‘oho’ работает! :)
    Благодарю всех, кто принимал участие.

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*