Я начал разрабатывать сайт с более чем десятком пользовательских типов сообщений. Я хотел бы переименовать некоторые из них, не только отображаемое значение, но и фактическое имя пользовательского типа записи. Однако я беспокоюсь, что, просто запустив запрос на обновление SQL, я пропущу некоторые места, где мне нужно что-то изменить или перезаписать часть сериализованных данных. Я уже ввел более 3000 элементов, поэтому не могу просто перезапустить с чистой базой данных.
Как лучше всего переименовать пользовательский тип записи? Как насчет переименования таксономии?
Дополнительный вопрос в том же духе касается пользовательских правил перезаписи.htaccess. Будет ли много остаточных правил, засоряющих мою базу данных? Я еще не запустил сайт, поэтому мне не нужно перенаправлять старые ссылки.
Отличный ответ, именно то, что мне было нужно. Вот совет на случай, если другие столкнутся с той же проблемой, что и я: после того, как я выполнил запрос и обновил свой код, все в основном заработало, но когда я попытался перейти на страницу для отдельного элемента контента, я получил ошибку 404. Я думаю, что некоторый кэш постоянных ссылок необходимо сбросить; Я перешел в «Инструменты» > «Постоянные ссылки» и нажал «Сохранить», после чего подробные страницы начали работать.
Когда я сделал это, я также обновил поле guid. Это может помочь сделать ненужным повторное создание постоянных ссылок, как упоминал @AndyGiesler. Просто включите в оператор UPDATE следующее: guid=REPLACE(guid, », »)
Просто чтобы добавить немного больше информации к комментарию rinogo, это немного более безопасный способ обновить guid: UPDATE wp_posts SET guid = REPLACE (guid, ‘post_type=’, ‘post_type=’);
просто отметим, что вам нужно будет следить за именами ваших таблиц при работе на нескольких сайтах.
Неплохо подмечено. Я создаю свою тему на заказ, поэтому мне определенно придется пройтись и изменить свой код. Однако у меня нет плагинов, которые хранят информацию о пользовательском типе сообщений.
Это хороший момент. Я использовал расширенные настраиваемые поля, и для каждой группы полей, прикрепленной к этому сообщению, вы должны вручную сбросить его на новое имя CPT. Хотя после этого работает нормально.
Спасибо, что разместили эти ссылки. Я сам хорошо выполняю SQL-запросы, но они определенно пригодятся другим, кто наткнется на эту публикацию.
это, кажется, конвертирует типы сообщений, а не переименовывает их
SQL-запрос для переименования сообщений:
SQL-запрос для переименования таксономии:
Это должно позаботиться обо всех областях базы данных. Просто не забудьте сопоставить новые имена в коде, где зарегистрированы типы сообщений или таксономии. Насколько я знаю, это еще не реализовано ни в каких плагинах.
Привет @Дерек Перкинс:
В целом ответ @John P Bloch точен, но с оговоркой. Плагины и даже пользовательские темы могут и могут хранить информацию о типе сообщений, и поэтому, чтобы быть уверенным, что вы не испортите свои данные, вам необходимо убедиться, что ваши плагины и темы не хранят типы сообщений, или если они это делают, вы обновляете их данные. также.
Можете ли вы сказать нам, какие плагины вы используете?
Если вы не хотите самостоятельно выполнять SQL-запросы вручную, вы можете использовать несколько плагинов:
Я успешно использовал преобразование типов сообщений для массового изменения сообщений.
Для конвертации отдельных постов лучшим вариантом будет переключатель типа поста.