- Home
- Categorie
- Coding e Sistemistica
- WordPress
- Modificare data a tutti i post
-
Integro la risposta.
Su WordPress la data via php è visualizzata tramite la funzione get_the_time che richiama get_post_time. Entrambe si trovano in: wp-includes/general-template.php .In linea di principio, se volessi modificare le date di una parte o di tutti i post potrei agire direttamente sul database.
Le date sono archiviate nei due campi post_date e post_date_gmt .
Si può lanciare una query di aggiornamento direttamente dall'applicazione di gestione del db (io uso phpmyadmin).Ciascuno ha un'esigenza diversa e quindi scriverà la query secondo ciò che vuole ottenere. Se volessi aggiornare il solo campo post_date di tutti i post inserendo 2014-03-03 08:30:00 come data, farei così:
- accedo al database su phpmyadmin
- archivio una copia di backup
- importo i dati del backup in una copia del db, in modo da testare senza rischio di compromettere il sito online
- faccio clic sulla finestra SQL in cui si eseguono le query sul database e scrivo:
UPDATE wp_posts SET post_date = '2014-03-03 08:30:00' WHERE post_type = 'post'
- dopo il clic su "esegui" controllo i dati: se tutto è andato bene ho modificato soltanto i record relativi ai 'post' sostituendo la data prescelta nel campo post_data.
Questo sistema ha lo svantaggio di modificare il database. Con un po' di fantasia si potrebbe intervenire in PHP senza modificare i dati.
Attenzione: chi modifica i dati lo fa a proprio rischio e pericolo, meglio prima fare un backup del db ed eseguire tutti i test del caso prima di pubblicare, nessuno garantisce che il codice non faccia danni.
Francesco
-
Perfetto funziona !!! Però non cambia la data alle PAGINE.
-
Certo che non le cambia, le pagine non sono post. Devi fare un'altra query identica cambiando il valore da 'post' a 'page' (controlla se è 'page', sto scrivendo a memoria).
Esempio (ma tu prima controlla il valore in post_type
UPDATE wp_posts SET post_date = '2014-03-03 08:30:00' WHERE post_type = 'page'
Francesco
-
No, le pagine si trovano sempre nella tabella wp_posts, però con la prima query non si sono modificati.
La seconda query non va.
-
Ciao seogenova.
Mi confermi che con la prima query si sono modificate le date dei post (non delle pagine)?
-
Ho appena lanciato la query e mi ha modificato la data, che è quella di pubblicazione. Se invece vuoi modificare la data dell'ultimo aggiornamento devi sostituire post_date con post_modified:
UPDATE wp_posts SET post_modified = '2014-03-03 08:30:00' WHERE post_type = 'page'
Per essere certo della modifica la devi controllare nei record della tabella wp_posts, perché il valore che eventualmente viene stampato online potrebbe non derivare da quel campo.
Fammi sapere perché questa cosa è strana.
Francesco
-
si confermo, si sono modificati solo i post. Io voglio modificare la data di pubblicazione, la quale poi risulta nei risultati di ricerca.
-
La questione dell'aggiornamento della data di pubblicazione nei risultati di ricerca è cosa diversa.
Ovviamente con questa operazione della query ci limitiamo a modificare la data di pubblicazione così come archiviata nel database.Ho lanciato la query con 'page' e a me ha cambiato la data di pubblicazione:
francescodagostino . name/images/varie/aggiornamento-data-page-wp . jpg
(Elimina gli spazi per vedere l'immagine.)
A meno che tu non abbia una struttura di database diversa, non capisco perché lanciando la query di aggiornamento (quella con 'page') non ti modifichi la data di pubblicazione.
-
No, per gli articoli me l'ha cambiata correttamente. E' un normale database per wordpress
-
@seogenova: purtroppo non so aiutarti. :bho:
Questa è una query di aggiornamento semplice e non capisco perché non funzioni.
Le variabili in gioco sono poche, per rendersene conto si può vedere la struttura della tabella:francescodagostino . name/images/varie/wp_posts_struttura . jpg
La query aggiorna nella tabella wp_posts (UPDATE) il campo post_date (SET) dei soli record che presentano il valore 'page' di post_type (WHERE). Posso suggerirti solo di controllare la sintassi, i valori tra apici e il formato in cui hai inserito la data.
Francesco
-
Anche io devo modificare la data a numerosi articoli wordpress che mi sono stati salvati con la data 01/01/1970
Ora gli articoli si trovano nella sezione portfolio (post_type = 'portfolio') e vorrei correggere la data solo degli artcoli della categoria "esempio1".Nella tabella wp_posts non trovo la colonna della categoria a ciu appartiene l'articolo.
Comunque come dovrebbe essere la query da lanciare?