timestamp e le irregolarità post-programmati
-
16-10-2019 - |
Domanda
Aggiornamento: Ho confermato il problema (che i posti previsti si basano sul tempo UTC), ora solo bisogno di consigli e di sfondo per determinare la soluzione migliore. Domande:
1) come WP determina il tempo UTC prima di calcolare offset di fuso orario locale (vale a dire non si usa il tempo del sistema operativo del server o qualche altra fonte - riesco a trovare in codice / googling)
..che sarebbe aiutarmi a rispondere ..
2) sta cambiando ora del server da UTC a PST locale l'unico / modo migliore per rendere i messaggi programmati utilizzano lo stesso fuso orario come WP-tempo? e
2 bis) ci sono delle potenziali implicazioni negative per l'ora del server che cambia da UTC a locale?
3) che cosa è il modo migliore per cambiare il tempo del server in modo accurato - quando ho creato un orologio, non deve essere esattamente a destra, ma mi piacerebbe essere preoccupato per impostare manualmente l'ora su un server.
Ciao a tutti -
Problema: In primo luogo, WP ha iniziato la pubblicazione di tutti i messaggi in programma mancante. Questo sembra essere un problema ampiamente sperimentato, e ho risolto utilizzando il plugin "programma di mancata". Questo è probabilmente, ma non necessariamente, sfondo irrilevante.
Poco dopo il passaggio a un nuovo server, WP ha iniziato a pubblicare i messaggi in programma in anticipo, che per me, può puntare solo per il tempo configurato in modo errato / impostazioni di data qualche parte nel nostro stack.
Stack: LNMP, una scatola nginx, un db / memcache / scatola php (anche se non l'ho fatto, e non poteva, costruirlo)
Per quanto ne so, ci sono 4 posti nel nostro stack in cui è impostato il tempo / invocato: in WordPress Impostazioni generali (insieme a PST, ma anche mostra correttamente ora del server UTC), per PHP5 in php.ini (era insieme al tempo centrale, dove il nuovo server è, ma ho aggiornato a PST ed ho ricominciato php-fpm una volta mi sono reso conto PHP5 ha un'impostazione del fuso orario, diminuendo la discrepanza di 2 ore), e il sistema operativo di ciascuna casella (entrambi sono impostati ora UTC, che mi sono state assumendo è ok perché WP riconosce come come ancora in grado di impostare il tempo di 'proprio').
Tuttavia, attualmente sto a guardare qualcosa accadere che non dovrebbe essere possibile. Un post è stato fissato a pubblicare alle 9:30 am PST, ma pubblicato alle 1:30 am PST invece (09:30 UTC). Ciò ha causato la "X pubblicato fa" timestamp relativo sul post per contare all'indietro da 8 ore, e quindi avviare il conteggio di nuovo alle 9:30 am PST. Per me, questo significa che, mentre lo scheduler posta (apparentemente) dovrebbe essere alla ricerca al (configurato correttamente) Tempo di WP locale (come il frontend è), è invece utilizzando UTC tempo (server).
opzioni di soluzione:
A. ri-set OS entrambe le caselle, oltre a PHP, oltre a tutti i blog WP di utilizzare solo il tempo UTC, e istruire tutti i contenuti editoriali di vivere in UTC.
B. ri-set OS entrambe le caselle a PST per abbinare PHP e WP. Sembra che questo è probabilmente la soluzione (dal momento che il post pubblicato sul server di / ora UTC) , ma io sono un n00b * nix e vogliono solo fare in modo che dovrei usare 'data -s' e solo cercare di essere quanto più precisa possibile, o se sarebbe più intelligente solo lasciare una richiesta di assistenza ospite chiedendo loro di sincronizzare i tempi di entrambi i server a PST? (o se c'è un modo migliore per essere precisa a questo proposito)
Quello che non capisco:
A. Perché il post-scheduler con deroghe "tempo WP" per fare il calcolo di quando a pubblicare?
(Aggiornamento: Penso che la risposta è qui: http://codex.wordpress.org/Function_Reference/wp_schedule_event - analizza momento tramite unix timestamp direttamente, piuttosto che attraverso wp)
?
B. Perché nemmeno impostazioni WP separano ora UTC di tanto locale, se tutte le funzioni fanno il tempo non calcolare dalla stessa fonte?
Perché questo è un problema:
Abbiamo 15 siti, con utenti del sito primarie in fusi orari diversi. Idealmente, si potrebbe impostare WP "ora locale" per blog, e hanno tutti la pianificazione postale e funzioni avvalersi di tale periodo di tempo specificato. Se la programmazione si basa sul tempo server, questo sembra impossibile.
Soluzione
Per cominciare cercano nucleo di controllo plugin per vedere se sono assegnati in modo accurato le operazioni pianificate. messaggi pianificati verranno visualizzati come publish_future_post
> check_and_publish_future_post()
con l'ID di posta come argomento.