Seleccionar página

Nota sobre como solucionar el problema del enlace de la Home (inicio) de destino en un idioma que no es el de defecto.

Si tenemos un menú creado en WordPress en el que un <li> es un enlace a la página de inicio puede pasar que si nos encontramos ubicados en nuestra web en un idioma que no es de defecto y lo clicamos nos direccione a la página de inicio del idioma que tenemos por defecto, es decir, si nuestro idioma por defecto es el castellano y hemos traducido nuestro sitio al catalán, en caso de que un visitante esté en la página en la versión /ca y quiera volver a la página de inicio clicando en el enlace del menú ( <a href=»http://misitio.es/ca»>Inici</a> ), automáticamente Qtranslate ubicará el enlace a la home de castellano ( http://misitio.es ).

Para solucionar lo que en principio parece un problema del pluguin deberemos añadir estas lineas de código en el archivo qtranslate_hooks.php

[php]
add_filter(‘walker_nav_menu_start_el’, ‘qtrans_in_nav_el’, 10, 4);
function qtrans_in_nav_el($item_output, $item, $depth, $args){
$attributes = ! empty( $item->attr_title ) ? ‘ title="’ . esc_attr( $item->attr_title ) .’"’ : »;
$attributes .= ! empty( $item->target ) ? ‘ target="’ . esc_attr( $item->target ) .’"’ : »;
$attributes .= ! empty( $item->xfn ) ? ‘ rel="’ . esc_attr( $item->xfn ) .’"’ : »;

// Determine integration with qTranslate Plugin
if (function_exists(‘qtrans_convertURL’)) {
$attributes .= ! empty( $item->url ) ? ‘ href="’ . qtrans_convertURL(esc_attr( $item->url )) .’"’ : »;
} else {
$attributes .= ! empty( $item->url ) ? ‘ href="’ . esc_attr( $item->url ) .’"’ : »;
}

$item_output = $args->before;
$item_output .= ‘<a’. $attributes .’>’;
$item_output .= $args->link_before . apply_filters( ‘the_title’, $item->title, $item->ID ) . $args->link_after;
$item_output .= ‘</a>’;
$item_output .= $args->after;

return $item_output;
}
[/php]

Esto funciona con WordPress 3.5.2 y Qtranslate 2.5.34

Fuente del recurso: ContenidosV