2010-06-29 6 views

risposta

16

È possibile eseguire questa operazione inserendo nella tabella postmeta utilizzando una query di selezione nella tabella dei post.

Nell'esempio seguente, utilizzo wp_ come prefisso tabella, la configurazione potrebbe essere diversa.

insert into wp_postmeta (post_id, meta_key, meta_value) 
select ID, 'my-key', 'my-value' from wp_posts where post_type = 'post'; 
+0

funziona. Grazie! c'è un modo per controllare se esiste la meta chiave, quindi non aggiungo duplicati? – Alex

+6

ha funzionato perfettamente. Volevo solo aggiungere un piccolo aggiornamento poiché questa affermazione aggiunge il postmeta per ogni singolo elemento inclusi allegati, pagine ecc. Ho aggiunto un'istruzione WHERE alla fine in modo che aggiungesse solo la chiave per i post: 'inserisci in wp_postmeta (post_id, meta_key, meta_value) seleziona ID, 'my-key', 'my-value' da wp_posts WHERE post_type = 'post'' – waffl

+0

Grande !! Ho salvato la mia giornata e ha funzionato perfettamente –

1

Sì, questo è possibile, ma è sconsigliabile. I tuoi dati potrebbero essere persi la prossima volta che esegui l'upgrade. Se non hai intenzione di eseguire l'aggiornamento, allora stai lasciando buchi di sicurezza spalancati nel tuo sito. Il modo consigliato per farlo è usare la tabella postmeta. Questo è ciò per cui esiste.

EDIT

Ora che meglio capito la domanda, ignorare la parte sopra. Vedi i commenti per maggiori dettagli.

+0

non ho valutato la tua risposta. non ho un account qui quindi non posso farlo ugualmente :) – Alex

+0

Penso che Alex significhi come può creare campi personalizzati Wordpress (che userebbero la tabella 'postmeta') con SQL, piuttosto che come può aggiungere nuove colonne alla tabella dei post (che sembra essere come l'hai interpretata John). Il voto negativo sembra però poco caritatevole. Per quanto riguarda la tua domanda, Alex, non penso che tu possa farlo usando una singola istruzione SQL, avresti bisogno di recuperare tutti gli ID dei post e poi aggiungere una riga alla tabella 'postmeta' per ogni post contenente i tuoi dati di campo personalizzati. –

+0

Ah. Penso che tu abbia ragione, Richard. FWIW, Alex, non ho mai pensato che tu avessi votato. Generalmente, le persone che fanno domande sono interessate a trovare la risposta e comunicheranno prima di votare. Il "tu" nel mio commento dovrebbe essere tutti pronomi impersonali. –