Questo thread è stato risolto. Ecco una descrizione del problema e della soluzione.
Problem: Se stai riscontrando errori 500 sulla versione inglese del tuo sito e utilizzi una funzione custom per la selezione della lingua che genera errori, potrebbe essere dovuto all'uso di una funzione non definita o deprecata come
languages_list_head()
e
icl_get_languages()
.
Solution: Verifica che la funzione
languages_list_head()
sia correttamente definita nel tuo tema, poiché non è una funzione di WPML e potrebbe essere la causa dell'errore 500. Inoltre,
icl_get_languages()
è una funzione deprecata di WPML. Se necessiti di inserire un selettore di lingua, ti consigliamo di utilizzare gli hook e le funzioni fornite da WPML che sono aggiornate e supportate. Puoi trovare maggiori informazioni sugli hook di WPML qui: https://wpml.org/wpml-hook/wpml_head_langs/.
Se questa soluzione non risolve il tuo problema o se le informazioni risultano obsolete, ti invitiamo a verificare i problemi noti su https://wpml.org/known-issues/, a controllare la versione della correzione permanente e a confermare di avere installato le ultime versioni dei temi e dei plugin. In caso di ulteriori difficoltà, ti consigliamo di aprire un nuovo ticket di supporto.
Questo è il forum di assistenza tecnica di WPML, il plug-in multilingue di WordPress.
La sua lettura è permessa a tutti, ma la pubblicazione è riservata esclusivamente ai clienti di WPML. Il team di WPML risponde sul forum 6 giorni su 7, 22 ore su 24.
Contesto del problema:
Sto cercando di risolvere un problema con la versione inglese del sito che presenta diversi errori 500. Il problema si verifica sulla pagina: link nascosto. Mi aspettavo di vedere la pagina tradotta: link nascosto.
Sintomi:
Errore 500 - Internal Server Error. Il server ha incontrato un errore interno o una configurazione errata e non è stato in grado di completare la richiesta. Inoltre, si è verificato un errore 500 mentre si tentava di utilizzare un ErrorDocument per gestire la richiesta.
Domande:
Quali potrebbero essere le cause degli errori 500 sulla versione inglese del sito?
Come posso risolvere l'errore 500 per visualizzare correttamente la pagina tradotta?
Mi scuso per non aver risposto prima, ma stavo testando il sito nei giorni precedenti:
Con un mio collega abbiamo riscontrato un problema con la funzione di selezione della lingua la mia funzione è la seguente:
function languages_list_head() {
if (function_exists('icl_get_languages')) {
$languages = icl_get_languages('skip_missing=0');
// Controllo che esista 'native_name' per evitare errori
$lng = isset($l['native_name']) ? substr($l['native_name'], 0, 2) : '--';
echo '
' . $is_active . esc_html($lng) . $end_tag . '
';
}
// Controllo se la sidebar è attiva prima di mostrarla
if (function_exists('is_active_sidebar') && is_active_sidebar('header')) {
dynamic_sidebar('header');
}
echo '<button class="menu-toggle" aria-controls="primary-menu" aria-expanded="false"><i class="las la-bars"></button>';
echo '';
}
} else {
echo '<!-- WPML non attivo -->';
}
}
e genera questo errore:
#7 {main}
thrown in /home/customer/www/russo1899.it/public_html/wp-content/themes/russo1899/header.php on line 73
[24-Feb-2025 13:25:08 UTC] PHP Fatal error: Uncaught Error: Call to undefined function languages_list_head() in /home/customer/www/russo1899.it/public_html/wp-content/themes/russo1899/header.php:73
Stack trace:
#0 /home/customer/www/russo1899.it/public_html/wp-includes/template.php(810): require_once()
#1 /home/customer/www/russo1899.it/public_html/wp-includes/template.php(745): load_template('/home/customer/...', true, Array)
#2 /home/customer/www/russo1899.it/public_html/wp-includes/general-template.php(48): locate_template(Array, true, true, Array)
#3 /home/customer/www/russo1899.it/public_html/wp-content/themes/russo1899/single.php(10): get_header()
#4 /home/customer/www/russo1899.it/public_html/wp-includes/template-loader.php(106): include('/home/customer/...')
#5 /home/customer/www/russo1899.it/public_html/wp-blog-header.php(19): require_once('/home/customer/...')
#6 /home/customer/www/russo1899.it/public_html/index.php(17): require('/home/customer/...')
#7 {main}
thrown in /home/customer/www/russo1899.it/public_html/wp-content/themes/russo1899/header.php on line 73
Ok ma questa è una funzione custom che genera un errore del tema, perché la languages_list_head() non è definita. E languages_list_head() non è una funzione di WPML.
L'unica reference a WPML che vedo è con icl_get_languages ma si tratta di una funzione deprecata.
Noi non possiamo fare debugging di codice custom, e non mi è chiaro cosa stai cercando di fare. WPML ha già diversi modi integrati di inserire un selettore di lingua.
io ho necessità di customizzare il selettore della lingua ed inserire in esso anche la gestione del minicart di woocommerce, mi puoi indicare un'alternativa a icl_get_languages ?