Usare il condizionale PHP con WPML

ATTENZIONE: questo articolo è stato scritto oltre un anno fa, ed i contenuti potrebbero non essere più validi o compatibili. Sei pregato di tenerne conto, e se hai informazioni in merito di segnalarmele, grazie.

WordPress multilingua con plugin WPML

Un barbatrucco facile facile per chi gestisce un sito multilingua in WordPress ed il noto plugin WPML, come far apparire qualcosa in più (o di meno, o di diverso) se il sito viene visualizzato in italiano piuttosto che in inglese o in aramaico.

Basta utilizzare un po’ di PHP condizionale (lo abbiamo già visto riguardo WordPress e WooCommerce).

Possiamo, ad esempio, che un particolare box di informazioni appaia solo negli articoli in italiano ma non in quelli in altre lingue, o che una particolare funzione si attivi solo quando si visualizzano le pagine in francese.

Ma vediamo nel dettaglio il codice che ci serve.

Nel file del tema relativo alla parte che vogliamo modificare, che sia l’header piuttosto che il singolo articolo, inseriamo questo codice PHP:

<?php if(ICL_LANGUAGE_CODE=='it'){ ?>
 
/* Inserire qui il contenuto (testo, PHP o HTML) */
/* da visualizzare solo nelle pagine in italiano */
 
<?php } ?>

Con lo stesso sistema, possiamo inserire un filtro o altra azione nel file functions.php del tema:

if(ICL_LANGUAGE_CODE=='it'){
 
/* Inserire la funzione da attivare */
/* solo nelle pagine in italiano */
 
}

Com’è facile immaginare, ci si può sbizzarrire sia con le funzionalità del PHP (con i vari else, elseif etc), sia con il codice permesso da WMPL.

Tags: , , , , , , ,

4 Risposte a “Usare il condizionale PHP con WPML”

  1. Vincenzo 25 Set 2014 at 17:16 #

    Nel functions.php NON funziona. Sai per caso come mai? Forse c’è da dichiarare qualche variabile globale o includere qualche file esterno?
    Grazie.

    • Roberto Rota 25 Set 2014 at 17:45 #

      Ciao Vincenzo, io ho usato il condizionale descritto nel post in più di un’occasione direttamente nel file functions.php, e non ricordo di aver preso mai accorgimenti particolari.

      La sintassi è corretta?

      L’istruzione viene direttamente dalla documentazione di WPML, forse li c’è scritto qualcosa di più, hai guardato?

      rob

      • Vincenzo 25 Set 2014 at 17:48 #

        Ciao si la sintassi è corretta. Ho trovato una soluzione comunque. La posto qui per coloro che magari si troveranno nello stessa condizione.

        Credo innanzitutto sia un problema del template che NON dichiara correttamente le globali di wpml. Comunque per risolvere usate:

        global $sitepress;
        $sitepress->get_current_language() <– come risultato è identico a ICL_LANGUAGE_CODE quindi tira fuori il codice lingua.

        Grazie 1000 per la risposta così veloce 🙂

        Vincenzo

        • Roberto Rota 26 Set 2014 at 15:46 #

          Ciao Vincenzo, grazie per il feedback, molto apprezzato! 🙂

          rob

Dubbi o suggerimenti? Lascia un commento!

I love Instagram