+ Rispondi alla Discussione
Risultati da 1 a 14 di 14

Cambiare lingua delle singole pagine wordpress

Ultimo Messaggio di cardy il:
  1. #1
    Utente Premium L'avatar di Lionard84
    Data Registrazione
    Aug 2009
    Località
    Toscana
    Messaggi
    325
    Segui Lionard84 su Twitter Aggiungi Lionard84 su Google+ Aggiungi Lionard84 su Facebook Aggiungi Lionard84 su Linkedin Visita il canale Youtube di Lionard84

    Cambiare lingua delle singole pagine wordpress

    Salve, vorrei poter cambiare lingua alle singole pagine, alcune pagine sono in inglese e per adesso non posso un sito totalmente in multilingua. Io vorrei solo cambiare la parte in alto:
    Codice:
    <html dir="ltr" lang="it-IT">
    e mettere inglese o tedesco, come posso fare ? Con joomla c'è l'impostazione per le singole pagine, con wp non la trovo e non trovo neppure un plugin che permetta di farlo.
    Grazie
    ps: questo solo per dire al motore di ricerca che la pagina è in inglese o in italiano.

  2. #2
    Esperto L'avatar di cardy
    Data Registrazione
    Mar 2010
    Località
    Cattolica
    Messaggi
    344
    Segui cardy su Twitter Aggiungi cardy su Google+ Aggiungi cardy su Facebook
    Ciao Lionard84, per caso le pagine in lingua condividono parte dell'url?
    Nel senso che le pagine in inglese hanno url tipo www.nomesito.it/en/ ?
    Se così fosse si riesce a risolvere con una semplice funzione... Fammi sapere se è così che ti posto il codice necessario....
    Mi trovate anche su Twitter Programmatore Wordpress

  3. #3
    Utente Premium L'avatar di Lionard84
    Data Registrazione
    Aug 2009
    Località
    Toscana
    Messaggi
    325
    Segui Lionard84 su Twitter Aggiungi Lionard84 su Google+ Aggiungi Lionard84 su Facebook Aggiungi Lionard84 su Linkedin Visita il canale Youtube di Lionard84
    Ciao, grazie della risposta, purtroppo no perchè non sono riuscito ad inserire /en/ nel link, ho provato alcuni plugin che permettevano di modificare tutto il permalink ma mi creavano non pochi problemi sul blog, perciò li ho tolti. Wp non fà inserire directory virtuali nel permalink quindi non saprei neppure come fare sinceramente.
    Grazie ancora

  4. #4
    Utente Premium L'avatar di Lionard84
    Data Registrazione
    Aug 2009
    Località
    Toscana
    Messaggi
    325
    Segui Lionard84 su Twitter Aggiungi Lionard84 su Google+ Aggiungi Lionard84 su Facebook Aggiungi Lionard84 su Linkedin Visita il canale Youtube di Lionard84
    Ciao, se non esiste per le singole pagine mi puoi scrivere in ogni caso il codice per più pagine (cerco di mettere sotto /en/ le varie pagine in inglese) Grazie.

  5. #5
    Esperto L'avatar di cardy
    Data Registrazione
    Mar 2010
    Località
    Cattolica
    Messaggi
    344
    Segui cardy su Twitter Aggiungi cardy su Google+ Aggiungi cardy su Facebook
    Questo codice è da inserire nel file functions.php del tema

    Ipotizzando che wordpress sia installato nella root:
    Codice PHP:
    function get_lingua(){
        
    $url=explode('/',$_SERVER['REQUEST_URI']);
        
    //valore predifinito nel caso gli articoli si trovino nella root
        
    $ret='it-IT';
        if(
    sizeof($url)>1)
        {
            switch (
    $url[1])
            {
            case 
    'en':{
                    
    $ret='en-US';
                    break;
                }
            case 
    'fr':{
                    
    $ret='fr-FR';
                    break;
                }    
            case 
    'it':
            default:{
                    
    $ret='it-IT';
                    break;
                }

            }
        }
        return 
    $ret;

    Nel file header.php devi invece modificare la prima riga come segue:
    Codice PHP:
    <html dir="ltr" lang="<?php echo get_lingua();?>">
    Mi trovate anche su Twitter Programmatore Wordpress

  6. #6
    Utente Premium L'avatar di Lionard84
    Data Registrazione
    Aug 2009
    Località
    Toscana
    Messaggi
    325
    Segui Lionard84 su Twitter Aggiungi Lionard84 su Google+ Aggiungi Lionard84 su Facebook Aggiungi Lionard84 su Linkedin Visita il canale Youtube di Lionard84
    Grazie, adesso devo solo capire come modificare gli url (permalink) in modo che compaia /en/ , inizialmente pensavo ad una categoria ma questa possibilità sembra valida solo per gli articoli e non per le pagine.
    Grazie ancora e ciao

  7. #7
    Esperto L'avatar di cardy
    Data Registrazione
    Mar 2010
    Località
    Cattolica
    Messaggi
    344
    Segui cardy su Twitter Aggiungi cardy su Google+ Aggiungi cardy su Facebook
    Ciao, per le pagina è sufficente creare un pagina con url /en/ e impostare tutte le altre come pagine figlie.
    L'impostazione per rendere una pagina "figlia" la trovi sia nel modifica, che nel modifica veloce...
    Mi trovate anche su Twitter Programmatore Wordpress

  8. #8
    Utente Premium L'avatar di Lionard84
    Data Registrazione
    Aug 2009
    Località
    Toscana
    Messaggi
    325
    Segui Lionard84 su Twitter Aggiungi Lionard84 su Google+ Aggiungi Lionard84 su Facebook Aggiungi Lionard84 su Linkedin Visita il canale Youtube di Lionard84
    Grazie! Mi viene un'altro dubbio, così facendo all'interno delle pagine in inglese compare "
    Codice:
    <link rel='up' title='en' href='http://miosito/en' />
    Questo cosa comporta per i motori di ricerca?

    Visto che la pagina esiste solo per permettere l'uso del codice potrei inserire nel file robot:
    Codice:
    Disallow: /en
    Solo per non permettere indicizzazione di quella pagina.
    Che ne pensi?
    Ciao

  9. #9
    Utente Premium L'avatar di Lionard84
    Data Registrazione
    Aug 2009
    Località
    Toscana
    Messaggi
    325
    Segui Lionard84 su Twitter Aggiungi Lionard84 su Google+ Aggiungi Lionard84 su Facebook Aggiungi Lionard84 su Linkedin Visita il canale Youtube di Lionard84
    Il codice che mi hai dato lo devo iserire nel functions.php prima dell'ultimo endif;


    Codice:
    function get_lingua(){
        $url=explode('/',$_SERVER['REQUEST_URI']);
        //valore predifinito nel caso gli articoli si trovino nella root
        $ret='it-IT';
        if(sizeof($url)>1)
        {
            switch ($url[1])
            {
            case 'en':{
                    $ret='en-US';
                    break;
                }
            case 'fr':{
                    $ret='fr-FR';
                    break;
                }    
            case 'it':
            default:{
                    $ret='it-IT';
                    break;
                }
    
            }
        }
        return $ret;
    }  
    endif;
    Oppure dopo l'endif alla fine di tutto il function? Devo sostituirlo a qualcosa o devo solo aggiungerlo?

    Riguardo alla parte
    Codice:
    <html dir="ltr" lang="<?php echo get_lingua();?>">
    devo inserirla al posto di
    Codice:
    <html <?php language_attributes(); ?>>
    ? Cioè qui:
    Codice:
    ?><!DOCTYPE html>
    <html <?php language_attributes(); ?>>
    <head>
    Grazie.

  10. #10
    Esperto L'avatar di cardy
    Data Registrazione
    Mar 2010
    Località
    Cattolica
    Messaggi
    344
    Segui cardy su Twitter Aggiungi cardy su Google+ Aggiungi cardy su Facebook
    La funzione va dopo l'ultimo endif;

    Il codice nel header.php deve essere come questo (elimini quindi language_attributes() ):
    <!DOCTYPE html>
    <html dir="ltr" lang="<?php echo get_lingua();?>">
    <head>

    Mi trovate anche su Twitter Programmatore Wordpress

  11. #11
    Utente Premium L'avatar di Lionard84
    Data Registrazione
    Aug 2009
    Località
    Toscana
    Messaggi
    325
    Segui Lionard84 su Twitter Aggiungi Lionard84 su Google+ Aggiungi Lionard84 su Facebook Aggiungi Lionard84 su Linkedin Visita il canale Youtube di Lionard84
    Grazie, ho però notato un rallentamento delle pagine inserendo quel codice, è normale?

  12. #12
    Esperto L'avatar di cardy
    Data Registrazione
    Mar 2010
    Località
    Cattolica
    Messaggi
    344
    Segui cardy su Twitter Aggiungi cardy su Google+ Aggiungi cardy su Facebook
    Se mi parti un rallentamento di 1 ms, può essere se è maggiore non penso sia da imputare al codice, soprattutto vista la semplicità dello stesso. Non è che contemporaneamente hai falto altre modifiche?
    Mi trovate anche su Twitter Programmatore Wordpress

  13. #13
    Utente Premium L'avatar di Lionard84
    Data Registrazione
    Aug 2009
    Località
    Toscana
    Messaggi
    325
    Segui Lionard84 su Twitter Aggiungi Lionard84 su Google+ Aggiungi Lionard84 su Facebook Aggiungi Lionard84 su Linkedin Visita il canale Youtube di Lionard84
    No, nessuna modifica, è solo che impiega alcuni secondi prima di aprire la prima pagina, poi se uno continua a navigare le pagine interne le apre subito, bho magari è un problema del server.

  14. #14
    Esperto L'avatar di cardy
    Data Registrazione
    Mar 2010
    Località
    Cattolica
    Messaggi
    344
    Segui cardy su Twitter Aggiungi cardy su Google+ Aggiungi cardy su Facebook
    Dalla tua descrizione sembra che dipenda da files javascript e/o immagini. Questi una volta scaricati vengono salvati nella cache per cui sono subito prnti ad ogni caricamento di pagina. tutto normale insomma.

    Altrimenti potrebbe dipendere dal fatto che stai accedendo ad un file su di un server che al momento è lento (ogni tanto mi capita di notare rallentamenti quando utilizzo jquery sulla cdn di google)
    Mi trovate anche su Twitter Programmatore Wordpress

+ Rispondi alla Discussione

Tag per Questa Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.