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

👍 Научим бесплатно правильно создавать сайты на 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. В общем, некрасиво и неэргономично выходит. А если понадобятся ещё поддомены?
Как бы это всё с под-таблицами, как в мультисайте, замутить?

Создай свой первый сайт на WordPress

Grawl
Оцените автора
Добавить комментарий

  1. ctapbiu

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

    Ответить
    1. Grawl

      Ах да-а… Ну точно же… Туплю, бывает :)

      Ответить
    2. Grawl

      новый префикс == новая таблица. нет, не катет.

      Ответить
      1. Sergey Biryukov

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

        Ответить
        1. Grawl

          Это, кажется, всё-таки отдельные БД:
          [img]http://dl.dropbox.com/u/666401/Images/Screenshots/abc-japan_phpmyadmin-databases.png[/img]

          Ответить
          1. ctapbiu

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

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

            Ответить
            1. Grawl

              А… То есть не «_wp» в названии БД, а «wp_» в именах таблиц… Ясно.

              Ответить
            2. Grawl

              Какой информации не хватает? С радостью предоставлю всё, кросе паролей :)

              Ответить
      2. tiaurus

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

        Ответить
        1. Grawl

          Ок, понял.

          Ответить
  2. Grawl

    Таблицы сами создаются движком, да?

    Ответить
  3. Grawl

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

    $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';
    Ответить
    1. tiaurus

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

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

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

      Ответить
      1. Grawl

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

        Ответить
        1. tiaurus

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

          Ответить
          1. Grawl

            Это не из-за пространства, а из-за ограничения на количество БД на хостинге.

            Ответить
    2. Grawl

      ой. забыл убрать лишние закрывающие коды. когда уже наконец можно будет редактировать комментарии и записи? :) или хотя-бы предпросмотр.

      Ответить
  4. Grawl

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

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

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

    Ответить