design-wordpress-theme
design-wordpress-theme copied to clipboard
Notice: Only variables should be assigned by reference
Buongiorno, ho appena installato il tema in una versione wordpress pulita (senza plugin o altro). Aprendo il post "hello world" appaiono i seguenti errori (notice):
-
Notice: Only variables should be assigned by reference in <...>\wordpress\wp-content\themes\design-italia\comments.php on line 6
-
Notice: Only variables should be passed by reference in <...>\wordpress\wp-content\themes\design-italia\functions.php on line 175
(quest'ultimo due volte)
Sono in ambiente Windows con PHP 7.2.7
Ciao @bunglegrind , grazie per la segnalazione. Potrei aver trovato il problema, ma prima di rilasciare una nuova versione con questo fix volevo chiederti se puoi testarlo sulla tua installazione (a me non dà il tuo errore quindi volevo capire se sostenibile). Per fare questo dovresti fare una piccola modifica al file comments.php, tu potresti farlo? Grazie.
ok, dimmi
Nel file comments.php, riga 6, trovi questo: $comments_by_type = &separate_comments( $comments ); dovresti rimuovere la "&" e quindi la riga diventerebbe: $comments_by_type = separate_comments( $comments ); ...e salva!
Poi pulisci la cache e vediamo se si risolve il problema 🤞😅
La modifica che hai proposto elimina la prima notice delle tre. Analoga modificha in functions.php riga 175 elimina solo il primo dei due notice restanti.
Ma quindi hai rimosso la "&" anche in function.php?? Credo vadano tolte in entrambi i file.
Riga 175 in function.php: $comments_by_type = & separate_comments(get_comments('status=approve&post_id=' . $id)); diventa: $comments_by_type = separate_comments(get_comments('status=approve&post_id=' . $id));
Funziona?
no. Resta comunque un notice.
Quale?
Notice: Only variables should be passed by reference in <...>\wordpress\wp-content\themes\design-italia\functions.php on line 175
Giusto per capire se è colpa sempre delle &; proviamo a togliere anche l'altra. Riga 175 in functions.php, diventerebbe: $comments_by_type = separate_comments(get_comments('post_id=' . $id));
così funziona correttamente:
$cc = get_comments('status=approve&post_id=' . $id);
$comments_by_type = separate_comments($cc);
Però questo discorso degli ampersand (che se ho capito bene modificano il passaggio delle variabili da copia a riferimento) andrebbe approfondito meglio. Non vorrei si creassero altri disservizi.
Probabilmente non ti appare perché hai disabilitato gli errori notice
Avevo disattivato le notice e poi mi ero dimenticato di riattivarle. Non so come ringraziarti!!! Veramente GRAZIE! 🙏
Se hai altre segnalazioni (e anche soluzioni) suggeriscimele pure! Inserisco il fix nella prossima release, grazie ancora.
prego! non mancherò!
Stavo cercando di investigare... con il tuo fix in functions.php non serve modificare comments.php Per lo meno, a me non da errore in comments.php A te da l'errore che avevi postato all'inizio?
Così me la tengo buona per la prossima release e chiudo questa issue. Grazie ancora!
l'errore sul comment c'è ancora se non si toglie l'ampersand da comments.php.
Ma hai installato xdebug? Gli errori a schermo risultano più evidenti.