• Super User

    Modificare data a tutti i post

    Salve, vorrei modifica la data di pubblicazione degli articoli, ma siccome sono migliaia, vorrei farlo in automatico con qualche plugin.

    Esiste qualcosa ?

    Poi vorrei eliminare la data quando vedo un mio articolo su google nella ricerca.

    Grazie.


  • Moderatore

    Ciao seogenova.
    Per l'aggiornamento delle date puoi operare direttamente sul database con una query (fai prima una copia di backup). 🙂

    Francesco


  • Super User

    Puoi dirmi come fare per favore ?


  • Moderatore

    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


  • Super User

    Perfetto funziona !!! Però non cambia la data alle PAGINE.


  • Moderatore

    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


  • Super User

    No, le pagine si trovano sempre nella tabella wp_posts, però con la prima query non si sono modificati.

    La seconda query non va.


  • Moderatore

    Ciao seogenova.
    Mi confermi che con la prima query si sono modificate le date dei post (non delle pagine)?


  • Moderatore

    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. :mmm:
    Francesco


  • Super User

    si confermo, si sono modificati solo i post. Io voglio modificare la data di pubblicazione, la quale poi risulta nei risultati di ricerca.


  • Moderatore

    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.


  • Super User

    No, per gli articoli me l'ha cambiata correttamente. E' un normale database per wordpress


  • Moderatore

    @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


  • User

    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?