Поддержка → Проблемы и решения → Смена названия таблицы
Смена названия таблицы
-
Приветствую всех!
Подскажите, каким образом можно сменить название таблицы БД «wp_users» допустим на «accounts», так чтобы WP продолжало с ней работать?
Изначально убрал префиксы «wp_» на «» в конфиге, переименовал таблицы в базе, работает без префикса, но вот со сменой имени — ступор.
-
никак. по крайней мере, насколько я знаю.
define('CUSTOM_USER_TABLE', 'accounts');
в wp-config.php
https://codex.wordpress.org/Editing_wp-config.php
Движок должен работать, а вот плагины и темы — отнюдь не факт. Это редко используемая и очень странная фича 🙂
надо же, первый раз об этом слышу.
Подскажите, каким образом можно сменить название таблицы БД «wp_users» допустим на «accounts», так чтобы WP продолжало с ней работать?
Изначально убрал префиксы «wp_» на «» в конфиге, переименовал таблицы в базе, работает без префикса, но вот со сменой имени — ступор.А расскажите, пож. чем Вас смутило стандартное название и логика наименований (префиксы таблиц), используемая во всех нормальных движках? Зачем это вообще может понадобиться?
- Ответ изменён 7 лет, 2 месяца назад пользователем SeVlad.
Огромное спасибо! Даже на весьма специфичный вопрос откопали развернутый мануал. Буду тестировать, если кому интересно — то напишу, будут ли плагины/темы адекватно работать с такой системой.
@sevlad да не вопрос! В моем случае — пытаюсь прикрутить регистрацию к игровому серверу (L2), но вот незадача.. сервер использует свои фиксированные наименования таблиц в БД (сервера по другим играм такой проблемы не имели). Потому и пробую зайти с другой стороны, заставив WP работать с имеющимися.
Свой скрипт авторизации написать было бы разумней, но моими руками получится лишь дырка в безопасности.В моем случае — пытаюсь прикрутить регистрацию к игровому серверу (L2), но вот незадача.. сервер использует свои фиксированные наименования таблиц в БД (сервера по другим играм такой проблемы не имели). Потому и пробую зайти с другой стороны, заставив WP работать с имеющимися.
Я признаться сперва подумал это очередная фантазия «безопастности» 🙂
Но в случае интеграции лучше всё же иметь промежуточные таблицы или даже БД, чем подвергать риску работу движка.
Если что — работа ВП с БД осуществляется с пом класса wpdbпытаюсь прикрутить регистрацию к игровому серверу
Я бы делал иначе. Я бы написал альтернативную функцию wp_authenticate() и что там еще потребуется. Думаю, именно для таких случаев (фактически это мост с другим движком) ее и вынести в замещаемые (pluggable).
не понимаю смысла хранения в одной таблице разных данных.
создали хук на регистрацию пользователя — повесили на него создание в таблице accounts новой игровой учетной записи. хук на удаление пользователя — удаляем в accouns юзера.
зачем для этой операции приводить все к одному наименованию таблицы лично мне неясно.
Такс.. Объясните пожалуйста.
define(‘CUSTOM_USER_TABLE’, ‘accounts’); — сообщает WP, что таблица пользователей называется «accounts».
Следом по сути я должен задать список новых используемых строк:
DEFINE (‘CUSTOM_USER_META_TABLE’, ‘ID’);
DEFINE (‘CUSTOM_USER_META_TABLE’, ‘login’);
DEFINE (‘CUSTOM_USER_META_TABLE’, ‘password’);
и дальше в этом духе, начиная с ID и заканчивая display_name. По логике ведь я ему должен объяснить по каждому пункту, допустим, что стока «pass» теперь называется «password», или ошибаюсь?
Очень плохо, что там в двух словах описана эта возможность, а примера нет.Хочу попытаться разобраться с этим чудом. А после изучу ваши предложенные варианты, так как они все же в перспективе интересней.
Следом по сути я должен задать список новых используемых строк:
DEFINE (‘CUSTOM_USER_META_TABLE’, ‘ID’);
DEFINE (‘CUSTOM_USER_META_TABLE’, ‘login’);
DEFINE (‘CUSTOM_USER_META_TABLE’, ‘password’);Нет. CUSTOM_USER_META_TABLE — альтернативное имя таблицы {prefix}usermeta.
Способа указать альтернативные имена полей нет. По крайней мере, простого.
Извиняюсь, не строк, а столбцов*
Впрочем вчера не посмотрел на разницу имен полей, а теперь оказалось, что и с этим проблемы.
Сервер авторизации начал заплевывать ошибками, + шифрование паролей не совпадает, так просто не отделаюсь.
Чем больше вчитываюсь в ваши варианты, тем больше понимаю, что в вопросе не компетентен. Проще будет заказать прокомментированный скрипт/форму регистрации, после составления внятного ТЗ.Еще раз благодарю вас всех за помощь.
- Тема «Смена названия таблицы» закрыта для новых ответов.