Salta la navigazione

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.

Etichettato: 

Questo ticket contiene 5 risposte, ha 0 voci.

Ultimo aggiornamento da Laura 4 giorno, 11 ora fa.

Assistito da: Laura.

Autore Messaggi
Febbraio 25, 2025 a 7:09 am #16744013

pietroR-3

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?

Febbraio 25, 2025 a 9:05 am #16744509

Laura
Supporter

Lingue: Inglese (English ) Italiano (Italiano )

Fuso orario: Europe/Rome (GMT+01:00)

Salve,

grazie per averci contattato. Senza sapere qual è l'errore 500 non è possibile rispondere.

Attiva il debug.log di WordPress o chiedi all'hosting il server error log.

Marzo 4, 2025 a 4:00 pm #16775092

pietroR-3

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');

if (!empty($languages)) {
echo '<ul id="lang">';

foreach ($languages as $l) {
$is_active = $l['active'] ? '<span class="lng">' : '';
$end_tag = $l['active'] ? '' : '
';

// 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

    Ma non sempre.
    Mi potete indicare una soluzione?

    Marzo 4, 2025 a 4:41 pm #16775270

    Laura
    Supporter

    Lingue: Inglese (English ) Italiano (Italiano )

    Fuso orario: Europe/Rome (GMT+01:00)

    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.

    Marzo 4, 2025 a 4:49 pm #16775279

    pietroR-3

    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 ?

    Marzo 5, 2025 a 11:30 am #16778150

    Laura
    Supporter

    Lingue: Inglese (English ) Italiano (Italiano )

    Fuso orario: Europe/Rome (GMT+01:00)

    L'hook link nascosto dovrebbe fare quello che chiedi">https://wpml.org/wpml-hook/wpml_head_langs/