A WPML egy jó megoldás, ha többnyelvű honlapot szeretnénk. Lefordíthatjuk (megadhatjuk a fordításokat) a sablon és bővítmények szövegeit, mindezt admin felületen, alapszintű ismeretekkel. Számtalan kiegészítés készült hozzá, így a legnépszerűbb bővítményekhez akár plusz lehetőségek is rendelkezésünkre állnak. Azonban egy valamit, nem tud alapba a WPML (WordPress MultiLangual). Ez pedig a shortcode hiánya, amit az egyedi tartalmi mezőkhöz lehet használni. Ezt oldjuk most meg!

Az oldalak, bejegyzések tartalmát úgy fordíthatjuk, mintha külön oldalak lennének. A widget-eknél jelölhetjük, melyik nyelven, melyik widget jelenjen meg. Ezek majdnem elég részletes beállítási lehetőségek, de így például nem tudjuk egyszerűen lefordítani a sablon egyedi mezőinek (pl. láblécének egyedileg megadható) tartalmát. Ehhez a legjobb egy shortcode megoldás lenne. Sőt, az is! Vannak régi (több éves) pluginok, de van egy egyszerűbb megoldás is. Mégpedig a következőt kell a sablonunk functions.php fájlához hozzáadni.

/* WPML shortcodes */
add_shortcode( 'wpml_language', 'wpml_find_language');
function wpml_find_language( $attr, $content = null ){     
    extract(shortcode_atts(array( 
        'language' => '', 
    ), $attr));     
    $current_language = ICL_LANGUAGE_CODE;     
    if($current_language == $language){
        $output = do_shortcode($content);
    }else{
        $output = "";
    }         
    return $output;
}

Ezután pedig az alábbi shortcode használatával tudjuk az egyedi mezők tartalmát kényelmesen többnyelvűsíteni: (Figyeljetek a HU, EN stb. nyelvi kódokra!)

[wpml_language language="hu"]magyar[/wpml_language]
[wpml_language language="en"]english[/wpml_language]
[wpml_language language="de"]german[/wpml_language]

 

Tesztelve: WPML Multilingual CMS 4.0.6, WordPress 4.9.8

Forrás: WPML Support forum (angol)

  • Facebook
  • Twitter
  • LinkedIn
  • Google+