WordPress CMS

Un sito multilingua in WordPress senza utilizzare plugin

Come vi abbiamo spesso detto, quando si gestisce un sito in WordPress è bene limitare il più possibile l’uso dei plugin. Il seguente metodo vi permetterà di creare un sito multilingua senza l’uso di plugin. Ciò comporta anche un controllo maggiore sulle traduzioni che, se realizzate da un professionista, saranno sicuramente più fedeli al testo originale e quindi più attendibili. Del resto se vogliamo scalare posizioni nei motori di ricerca, un buon testo,
ma soprattutto un testo con frasi di senso compiuto, ha sicuramente il suo valore in termini di SEO.

Come è possibile creare manualmente un sito multilingua in WordPress?
Attraverso i campi personalizzati e l’utilizzo delle condizioni “if/else”.

Probabilmente ci sono diversi modi per gestire le diverse lingue di un sito, ma questo mi sembra un metodo abbastanza immediato e logico/intuitivo.

Come utilizzare i campi personalizzati

Nel pannello di WordPress creiamo una nuova pagina. Per le lingue differenti da quella principale (l’italiano nel nostro caso) andiamo ad aggiungere un campo personalizzato.

Se il pannello dei campi personalizzati non viene visualizzato clicchiamo in alto a destra su Impostazioni schermata e mettiamo una spunta su “Campi personalizzati”

Clicchiamo su “Aggiungi nuovo” e scriviamo il Nome del campo, ad esempio “lingua” (ovviamente senza virgolette) e indichiamo come Valore la lingua desiderata, ad esempio en (inglese), fr (francese), de (tedesco), o quant’altro.

Un’unica accortezza, utilizziamo un Valore differente per le diverse homepage, ad esempio scriviamo en-home, fr-home, de-home e via dicendo.

Ripetiamo l’operazione per tutte le pagine in lingua straniera. Fatelo subito quando create un nuovo contenuto in modo da non dimenticarvene. Non dobbiamo fare altro all’interno di WordPress.

Come utilizzare le condizioni if/else

L’utilizzo delle condizioni if/else ci permetterà di “smistare il traffico” nelle varie lingue:

  1. il file page.php ridirezionerà alle homepage e alle pagine delle diverse lingue
  2. il file category.php ridirezionerà alle categorie delle diverse lingue
  3. il file single.php ridirezionerà agli articoli delle diverse lingue

Questo piccolo schema vi sarà molto più chiaro nel proseguimento dell’articolo.

1. Le operazioni nel file page.php

Apriamo il file page.php e analizziamo come procedere.
Per prima cosa avvertiamo WordPress del nostro utilizzo dei campi personalizzati (nel nostro caso il nome del Campo è “lingua”) attraverso questa stringa di codice:

<?php $lingua = get_post_meta($post->ID, 'lingua', TRUE); ?>

Procediamo adesso con la seconda parte del codice, utilizzando appunto le condizioni if/else.

<?php 
if ($lingua == "en-home") {
include 'en-index.php';
} elseif ($lingua == "en") {
include 'en-page.php';

} elseif ($lingua == "fr-home") {
include 'fr-index.php';
} elseif ($lingua == "fr") {
include 'fr-page.php';

} elseif ($lingua == "de-home") {
include 'de-index.php';
} elseif ($lingua == "de") {
include 'de-page.php';

} elseif ($lingua == "ne-home") {
include 'ne-index.php';
} elseif ($lingua == "ne") {
include 'ne-page.php';

} else  {
include 'it-page.php';
} 
?>

Se conoscete come utilizzare if/else vi sarà facile leggere questo codice, abbastanza immediato anche per chi mastica semplicemente un pò di inglese. Con questo codice diciamo quanto segue:

se il Campo lingua è “en-home” includi il file “en-index.php”, altrimenti se il Campo lingua è “en” includi il file “en-page.php”, altrimenti se……. altrimenti carica il file “it-page.php”

Il file “page.php” diventerà quindi un semplice switch attraverso il codice appena scritto.
Ma dove allora finisce il contenuto del nostro page in italiano? Se state seguendo con attenzione questo procedimento avrete capito che si trasforma in “it-page.php”.

2. Le operazioni nel file category.php

Vi starete chiedendo adesso come procedere con le categorie che non dispongono dei campi personalizzati.
Dovremo creare categorie differenti per le varie lingue e inserire il seguente codice nel file category.php:

<?php 
if (is_category( 'nome categoria inglese' )) {
include 'en-category.php';

} elseif (is_category( 'nome categoria francese' )) {
include 'fr-category.php';

} elseif (is_category( 'nome categoria tedesco' )) {
include 'de-category.php';

} else  {
include 'it-category.php';
} 
?>

Il significato di questo codice mi sembra abbastanza chiaro, carica un differente file category in base al nome della categoria. La funzione php “is_category” serve proprio a questo scopo, ad identificare la categoria.

3. Le operazioni nel file single.php

Per il file single.php abbiamo due modi differenti con cui potremmo procedere. Potremmo comportarci come abbiamo fatto per il file page.php, ossia inserire il campo personalizzato in ogni articolo che inseriamo, ma c’è una strada molto più semplice, che automatizzerà il tutto. Analizziamo il codice:

<?php
if ( in_category( 'nome categoria inglese' )) {
include 'en-single.php';
} elseif ( in_category( 'nome categoria francese' )) {
include 'fr-single.php';
} elseif ( in_category( 'nome categoria tedesco' )) {
include 'de-single.php';
} else  {
include 'it-single.php';
} 
?>

In questo caso utilizziamo la funzione php “in_category” che determina in quale categoria abbiamo inserito il nostro articolo. Basterà quindi selezionare la categoria giusta quando inseriamo un nuovo articolo e in automatico il nostro sito si visualizzerà nella lingua giusta.

Ultime operazioni

I più svegli avranno già capito che dovrete creare una serie di file per ogni lingua straniera, in modo da gestirli in maniera separata e quindi più comoda. Conviene copiarsi tutti i file in lingua italiana e rinominarli come segue:

  • en-home.php
  • en-page.php
  • en-single.php
  • en-category.php
  • en-header.php
  • en-sidebar.php
  • en-footer.php

A questo punto apriamo en-home, en-page, en-category, en-single ed al posto del “get” utilizziamo “include”, quindi ad esempio trasformiamo:

<?php get_header(); ?>
...
<?php get_sidebar(); ?>
...
<?php get_footer(); ?>

in

<?php include 'en-header.php'; ?>
...
<?php include 'en-sidebar.php'; ?>
...
<?php include 'en-footer.php'; ?>

Ripetiamo la procedura per le varie lingue. A prima occhiata la procedura può sembrare complessa, in realtà è molto semplice, bisogna solo entrare nel meccanismo. Ora possiamo modificare i testi in lingua straniera a nostro piacimento con le nostre traduzioni professionali.

p.s.: non dimenticate di modificare le immagini 😉




emoticons

avatar
Autore: Valerio Del Re

Dott. in Comunicazione e Pubblicità per le Organizzazioni,
Grafico e Web Designer freelance, CEO presso Robadagrafici


Cosa ne pensi? Esprimi la tua opinione.
Scrivi un commento.

Loading Facebook Comments ...

Ti potrebbero interessare anche:


wordpress-com-org

WordPress Italia: Community, Contributor Day e Meetup

WordPress è sicuramente il CMS più conosciuto ed utilizzato in tutto il mondo. Esistono molti altri CMS open […]


script-wordpress

Installare e configurare WordPress in locale (sul proprio pc)

Quando si sta imparando ad utilizzare un CMS come WordPress e/o si vuole realizzare un sito internet è […]


wordpress-security-release

Pericoloso bug in WordPress: è necessario aggiornare la versione

La recente versione 3.9.1 di WordPress pare sia vulnerabile e dunque pericolosa. La sicurezza di milioni di siti […]


excerpt-wordpress

Come modificare la lunghezza dell’excerpt in WordPress

Se stai realizzando un sito in WordPress ed all’interno fai uso di articoli molto probabilmente ti sarai imbattuto […]


mailpoet-newsletter-gratis

WordPress. Il miglior plugin gratuito per newsletter

Se avete realizzato un sito in WordPress e siete alla ricerca di un plugin gratuito per newsletter, quello […]


blocchi-codice-in-wordpress

Plugin per inserire blocchi di codice nei post di WordPress

Se gestite un blog realizzato con la piattaforma WordPress che si occupa, tra i vari temi, di programmazione […]


mobile-theme-switcher

Un plugin WordPress per visualizzare temi diversi per dispositivi diversi

Il vostro Cliente vi ha commissionato un sito internet che non sia responsive. Decidete quindi di realizzare un […]


facebook-like-button-su-wordpress

Come aggiungere manualmente il Facebook “Like” Button su WordPress

Per favorire la diffusione virale dei vostri articoli sui Social Network è importante realizzare dei pulsanti di condivisione […]


php-url-pagina-corrente

Php Url completo della pagina corrente

Molto spesso, realizzando un sito in WordPress, capita di aver bisogno di stampare l’url completo della pagina corrente. […]


Shares

Robadagrafici.com non è una testata giornalistica in quanto viene aggiornato senza alcuna periodicità. Non può pertanto considerarsi prodotto editoriale ai sensi della legge 62/2001. Le immagini e i testi pubblicati sono valutati come di pubblico dominio: qualora il loro uso violasse diritti d'autore, lo si comunichi all'autore del blog che provvederà alla loro pronta rimozione.
Tutti i contenuti sotto Licenza Creative Commons. Marchi e loghi di soggetti terzi utilizzati in questo sito sono di proprietà esclusiva dei rispettivi proprietari.
Roba da Grafici © 2011-2016 - Progetto a cura di ServiziWeb Srl - Privacy & Cookies Policy