Переименование Custom Post Types и Taxonomies

Я начал разрабатывать сайт с более чем дюжиной пользовательских типов сообщения. Я хотел бы переименовать несколько из них, не только значение дисплея, но и фактическое пользовательское имя типа сообщения. Я волнуюсь однако, что, просто выполнив запрос на обновление SQL, что я пропущу некоторые места, где я должен изменить вещи или часть перезаписи сериализированных данных. Я уже имею оценочный более чем 3 000 объектов, таким образом, я не могу только перезапустить с чистой базой данных.

Каков был бы лучший способ переименовать пользовательский тип сообщения? Как насчет того, чтобы переименовать таксономию?

31
30.08.2010, 19:50
3 ответа

SQL-запрос для переименования сообщений:

UPDATE  `wp_posts` SET  `post_type` =  '<new post type name>' WHERE  `post_type` = '<old post type name>';

SQL-запрос для переименования таксономии:

UPDATE  `wp_term_taxonomy` SET  `taxonomy` =  '<new taxonomy name>' WHERE  `taxonomy` = '<old taxonomy name>';

Это должно заботиться обо всех областях базы данных. Просто не забудьте соответствовать новым именам в коде, где типы сообщения или taxonomies регистрируются. Насколько я знаю, это еще не обрабатывается ни в каких плагинах.

47
19.02.2020, 21:55
  • 1
    Превосходный ответ, точно в чем я нуждался. Вот подсказка в случае, если другие поражают ту же проблему, как я сделал: После того, как я выполнил запрос и обновил мой код, вещи были в основном рабочими, но когда я пытался идти в страницу для отдельного объекта содержания, я получил 404 ошибки. Я думаю, что некоторый кэш постоянной ссылки должен был быть сброшен; я перешел к Инструментам> Постоянные ссылки и нажал Save, затем подробные страницы начали работать. –  Andy Giesler 11.03.2011, 22:06
  • 2
    Когда я сделал это, я обновил поле гуида также. Это могло бы помочь сделать ненужным повторно создать постоянные ссылки как @AndyGiesler упомянутый. Просто включайте следующее в свой оператор UPDATE: guid=REPLACE (гуид, '<старое имя типа сообщения>', '<новое имя типа сообщения>') –  rinogo 01.03.2013, 22:44
  • 3
    Только для добавления немного большего количества информации к комментарию rinogo это - немного более безопасный способ обновить гуид: ОБНОВИТЕ гуид НАБОРА wp_posts = ЗАМЕНА (гуид, 'post_type = <старое имя типа сообщения>', 'post_type = <новое имя типа сообщения>'); –  David 13.02.2014, 07:49
  • 4
    только для замечания Вас должен будет наблюдать Ваши имена таблиц при работе многоузловой –  acSlater 21.05.2014, 23:02

Привет @Derek Perkins:

В ответе общего @John P Bloch пятно на, но с протестом. Плагины и даже пользовательские темы могут и могут хранить информацию типа сообщения и таким образом чтобы быть уверенными, что Вы не повредите свои данные, которые необходимо гарантировать плагинам, и темы не хранят типы сообщения или если они делают это, Вы обновляете их данные также.

Можно ли сказать нам, какие плагины Вы используете?

6
19.02.2020, 21:55
  • 1
    Это - положительная сторона. Я использовал Усовершенствованные Пользовательские Поля, и для каждой полевой группы, присоединенной к тому сообщению, необходимо вручную сбросить его к новому имени CPT. После этого это хорошо работает все же. –  Chris Rae 11.12.2015, 22:51

Если Вы не хотите должными быть выполнять SQL-запросы сами руководство, там несколько плагинов, которые можно использовать:

Я успешно использовал, Преобразовывают Типы Сообщения в массовые сообщения изменения.

Для преобразования invididual сообщения затем Переключатель Типа Сообщения является более оптимальным вариантом.

4
19.02.2020, 21:55
  • 1
    это, кажется, преобразовывает типы сообщения, не переименовывают их –  vladkras 15.08.2015, 15:49

Теги

Похожие вопросы