Rinominare Tipi di Post Personalizzati e Tassonomie

30 ago 2010, 19:50:52
Visualizzazioni: 26.5K
Voti: 35

Ho iniziato a sviluppare un sito con oltre una dozzina di tipi di post personalizzati. Vorrei rinominarne alcuni, non solo il valore visualizzato, ma il nome effettivo del tipo di post personalizzato. Sono preoccupato, tuttavia, che eseguendo semplicemente una query di aggiornamento SQL potrei tralasciare alcuni punti dove è necessario apportare modifiche o sovrascrivere parte dei dati serializzati. Ho già inserito oltre 3.000 elementi, quindi non posso semplicemente ricominciare con un database pulito.

Qual è il modo migliore per rinominare un tipo di post personalizzato? E come si fa per rinominare una tassonomia?

1
Commenti

Un'ulteriore domanda sulla stessa linea riguarda le regole di riscrittura personalizzate in .htaccess. Ci saranno molte regole residue che intasano il mio database? Non ho ancora lanciato il sito, quindi non ho bisogno che i vecchi collegamenti vengano reindirizzati.

Derek Perkins Derek Perkins
1 set 2010 08:43:40
Tutte le risposte alla domanda 3
4
54

Query SQL per rinominare i post:

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

Query SQL per rinominare la tassonomia:

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

Questo dovrebbe occuparsi di tutte le aree del database. Ricorda solo di abbinare i nuovi nomi nel codice dove i tipi di post o le tassonomie sono registrati. Per quanto ne so, questo non è ancora gestito da nessun plugin.

30 ago 2010 20:24:58
Commenti

Risposta eccellente, esattamente ciò di cui avevo bisogno. Ecco un consiglio nel caso altri incontrano lo stesso problema che ho avuto io: dopo aver eseguito la query e aggiornato il mio codice, le cose funzionavano fondamentalmente ma quando ho provato ad andare alla pagina di un singolo elemento di contenuto ho ottenuto un errore 404. Penso che fosse necessario resettare qualche cache dei permalink; sono andato in Strumenti > Permalink e ho cliccato Salva, dopodiché le pagine dettagliate hanno iniziato a funzionare.

Andy Giesler Andy Giesler
11 mar 2011 22:06:50

Quando ho fatto questo, ho aggiornato anche il campo guid. Questo potrebbe aiutare a rendere non necessario rigenerare i permalink come menzionato da @AndyGiesler. Basta includere il seguente nella tua istruzione UPDATE: guid=REPLACE(guid, '<old post type name>', '<new post type name>')

rinogo rinogo
1 mar 2013 22:44:14

Solo per aggiungere un po' più di informazioni al commento di rinogo, questo è un modo leggermente più sicuro per aggiornare il guid: UPDATE wp_posts SET guid = REPLACE (guid, 'post_type=<old post type name>', 'post_type=<new post type name>');

David David
13 feb 2014 07:49:41

solo per notare che dovrai prestare attenzione ai nomi delle tabelle quando esegui su multisite

rmorse rmorse
21 mag 2014 23:02:09
2

Ciao @Derek Perkins:

In generale la risposta di @John P Bloch è corretta ma con una precisazione. I plugin e persino i temi personalizzati possono memorizzare informazioni sui tipi di post e quindi, per essere sicuri di non corrompere i dati, è necessario assicurarsi che i plugin e i temi non memorizzino tipi di post o, se lo fanno, che vengano aggiornati anche i loro dati.

Puoi dirci quali plugin stai utilizzando?

30 ago 2010 21:50:41
Commenti

Hai ragione. Sto costruendo il mio tema personalizzato, quindi dovrò sicuramente modificare il mio codice. Tuttavia, non ho plugin che memorizzano informazioni sui custom post type.

Derek Perkins Derek Perkins
1 set 2010 08:23:27

È un punto valido. Stavo usando Advanced Custom Fields, e per ogni gruppo di campi collegato a quel post devi reimpostarlo manualmente con il nuovo nome del CPT. Dopo però funziona tutto bene.

Chris Rae Chris Rae
11 dic 2015 22:51:10
2

Se non vuoi dover eseguire manualmente le query SQL, ci sono un paio di plugin che puoi utilizzare:

Ho utilizzato con successo Convert Post Types per modificare in massa i post.

Per convertire singoli post, invece Post Type Switcher è un'opzione migliore.

31 ago 2010 14:16:35
Commenti

Grazie per aver condiviso quei link. Sono tranquillo nell'eseguire personalmente le query SQL, ma saranno sicuramente utili per altri che incontreranno questo post.

Derek Perkins Derek Perkins
1 set 2010 08:24:39

sembra che questo converta i tipi di post, non li rinomini

vladkras vladkras
15 ago 2015 15:49:09