Перейменування користувацьких типів пошти та систематики


31

Я почав розробляти веб-сайт із понад десятками користувацьких типів публікацій. Я хотів би перейменувати декілька з них, не лише значення відображення, а власне власне ім’я типу публікації. Однак я переживаю, що, просто запустивши запит на оновлення SQL, я пропущу деякі місця, де мені потрібно змінити речі або перезаписати частину серіалізованих даних. У мене вже введено понад 3000 елементів, тому я не можу просто перезапустити чисту базу даних.

Який найкращий спосіб перейменувати спеціальний тип публікації? Як щодо перейменування таксономії?


Подальше запитання у тому ж ключі стосується користувацьких правил перезапису .htaccess. Чи буде багато правил, що залишилися, засмічуючи мою базу даних? Я ще не запустив сайт, тому мені не потрібно переспрямувати жодну стару посилання.
Дерек Перкінс

Відповіді:


47

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>';

Це повинно піклуватися про всі області баз даних. Просто пам’ятайте, щоб відповідати новим іменам у коді, де зареєстровані типи публікацій або таксономії. Наскільки мені відомо, це ще не обробляється жодними плагінами.


9
Відмінна відповідь, саме те, що мені було потрібно. Ось підказка, якщо інші потрапили на ту ж проблему, що і я: Після того, як я запустив запит і оновив свій код, в основному все працювало, але коли я спробував перейти на сторінку для окремого елемента вмісту, я отримав помилку 404. Я думаю, що потрібно змінити кеш постійних посилань; Я перейшов до Інструменти> Постійні посилання та натиснув Зберегти, тоді детальні сторінки почали працювати.
Енді Гіслер

Коли я це зробив, я також оновив поле керівництва. Це може допомогти зробити непотрібним відновлювати постійні посилання, як згадував @AndyGiesler. Просто включіть у свій запис ОНОВЛЕННЯ наступне: guide = ЗАМЕНИТИ (guide, '<назва старого типу публікації>', '<нове ім'я типу публікації>')
rinogo

Просто для того, щоб додати трохи більше інформації до коментаря rinogo, це трохи безпечніший спосіб оновити керівництво: ОНОВЛЕННЯ wp_posts SET guide = REPLACE (guide, 'post_type = <стара назва типу публікації>', 'post_type = <нове ім'я типу публікації > ');
Девід

просто зауважте, вам потрібно буде дивитися назви ваших таблиць під час роботи на багатосайтовій
платформі

6

Привіт @Derek Perkins:

Загалом відповідь @John P Bloch - це місце, але з застереженням . Плагіни та навіть власні теми можуть зберігати інформацію про тип публікації, і, таким чином, для того, щоб переконатися, що ви не зіпсуєте свої дані, вам потрібно забезпечити, щоб ваші плагіни та теми не зберігали типи публікацій або якщо вони оновлять їх дані також.

Чи можете ви сказати нам, які плагіни ви використовуєте?


Це хороший момент. Я будую власну тему на замовлення, тому мені обов'язково доведеться пройти і змінити код. У мене немає жодних плагінів, які б зберігали інформацію про користувацькі типи публікацій.
Дерек Перкінс

Це хороший момент. Я використовував розширені спеціальні поля, і для кожної групи полів, що додається до цієї публікації, ви повинні вручну скинути її до нового імені CPT. Після цього він працює добре.
Кріс Рай

4

Якщо ви не хочете самостійно виконувати запити SQL, ви можете скористатися парою плагінів:

Я успішно використовував конвертувати типи публікацій для масових публікацій.

Для перетворення невидимих ​​публікацій тоді кращим варіантом є перемикач типу публікації .


Дякуємо за публікацію цих посилань. Я добре виконую сам SQL запити, але вони, безумовно, стануть у нагоді для інших, хто натрапив на цю публікацію.
Дерек Перкінс

це, здається, перетворює типи публікацій, а не перейменувати їх
vladkras
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.