italia / design-scuole-wordpress-theme

Tema Wordpress dedicato al progetto per i siti delle scuole
GNU Affero General Public License v3.0
92 stars 210 forks source link

Aggiornamento Template 2.12 #691

Open Plinio2000 opened 2 months ago

Plinio2000 commented 2 months ago

Prerequisiti

Descrivi il problema

Quando attivo il nuovo template 2.12 si blocca l'aggiornamento, mi blocca il sito e mi visualizza l'errore "si è verificato un errore critico sul sito". Ho controllato la mail dell'amministratore, come richiede l'avviso. La mail è corretta, ma non si risolve il problema. Grazie

Includi link o screenshot

Errore

Su quale sisitema operativo stai riscontrando il problema?

Windows

Su quale browser stai riscontrando il problema?

Chrome

Che versione del tema stai utilizzando?

2.10.0

enrimk commented 2 months ago

È un'incompatibilità con php 7, introdotta nella 2.11, qui alla riga 227. L'operatore "nullsafe" di php è definito solo da php 8.0, con le vers. precedenti dà errore. Segnalata anche in #685 (nonché sui forum).

Probabilmente come quickfix togliere il "?" può già bastare. Forse genera qualche warning innocuo. Oppure, cambiare il controllo:

    if ( ! is_admin() && $query->is_main_query() && (is_post_type_archive("scheda_progetto") || is_tax("tipologia-progetto") ) {
zetareticoli commented 2 months ago

@enrimk se hai già avuto modo di testare il fix, puoi suggerirlo come PR così lo integriamo

enrimk commented 2 months ago

se hai già avuto modo di testare il fix

Purtroppo per il momento il tema Scuole lo stiamo valutando ma non lo stiamo ancora usando concretamente, e non ce l'ho (per ora) su una istanza WP funzionante da testare, specialmente con diverse versioni di php. Per cui, non avendolo testato direttamente, non me la sentirei di aprire una PR, non posso essere 100% sicuro che non ci siano effetti collaterali altrove.

Ho proposto il fix guardando il codice, non l'app, il che non è ottimale... È anche vero però che gli errori riportati identificano bene il punto su cui intervenire, e che di per sé non sembra un fix rischioso.


Qui la ratio della correzione, se qualcuno vuole valutarla: get_queried_object()?->taxonomy == "tipologia-progetto" controlla se si sta in un archivio di tassonomia. Siamo nel filtro "pre_get_posts", che viene invocato su tutte le query, anche non negli archivi, e anche dove get_queried_object() potrebbe non restituire niente di definito, ma null. Da qui, l'uso dell'op. nullsafe. Il ruolo di questo controllo può essere svolto meglio da is_tax("tipologia-progetto"), che è sempre definito. Risolve anche l'eventualità che la proprietà "taxonomy" del risultato non sia a sua volta definita, se l'oggetto restituito non è un _WPTerm.