Qtranslate abilitare la traduzione degli url menù dei custom post type

Uno dei problemi principali di qtranslate è la traduzione dei menù , in particolar modo se creiamo dei collegamenti a custom post type , come in molti template che fanno uso per la gestione del portfolio, rooms, events ecc.. queste tenderanno a riportare alla lingua di default durante la navigazione. La stessa cosa accade se creiamo un link personalizzato. Ci sono diversi metodi per risolvere il problema, il primo (più noioso ma più flessibile) è quello di utilizzare le classi dei menù per poi disabilitare via css con display:none le voci che vogliamo nascondere in una determinata lingua  ES:

PHP :

<?php
$language = $_GET[‘lang’];
?>
<body class=”<?php echo $language; ?>”>

 

CSS:
.en li#menu-item-1 { display: none; }
.de li#menu-item-2 { display: none; }

Altra soluzione è quella di utilizzare due menù differenti per ogni lingua , modificando l’hader.php del tema in uso Es:

PHP  :

if ( qtrans_getLanguage() == 'en' ) {  
      wp_nav_menu( array('menu' => 'Menu 1 en', 'theme_location' => 'primary', 'menu_class' => 'nav-menu') );  
 }   
 if ( qtrans_getLanguage() == 'id' ) {  
      wp_nav_menu( array('menu' => 'Menu 2 id', 'theme_location' => 'primary', 'menu_class' => 'nav-menu') );  
 }

Ultima soluzione (la più veloce ) è quella di modificare il file qtranslate_hooks.php aggiungendo

add_filter(‘post_type_link’,’qtrans_convertURL’);//traduzione custom post type URL

Riguardo le taxonomy nel file function.php basta aggiungere :

add_action('your_custom_taxonomy_add_form', 'qtrans_modifyTermFormFor');
add_action('your_custom_taxonomy_edit_form', 'qtrans_modifyTermFormFor');

sostituendo ovviamente con il nome della tassonomia da tradurre