Saltar navegación
Recursos prácticos

Traducir slugs de página es compatible con WPML. Este plugin ha sido probado exhaustivamente y se puede utilizar para crear sitios multilingües sin problemas.

Traducir slugs de página

– Desarrollado por Dresko Media

Versión 2.0.4

Última prueba realizada el: Abril 14, 2016

WPML le permite aprovechar direcciones URL únicas para contenidos distintos, en diferentes idiomas. Esto incluye tanto la traducción de slugs de entradas como el nombre del tipo de entrada personalizado.



Las direcciones URL para los tipos de entrada personalizados incluyen el nombre del tipo de entrada y el nombre de la página. De forma normal, los tipos de entrada personalizados en diferentes idiomas se muestran así:


  • /houses/my-green-house/

  • /casas/mi-casa-verde/


La primera parte de la dirección URL, en negrita, es el tipo de entrada. El segundo tipo es el nombre de página.



Para traducir nombres de páginas, haga clic en el botón Editar cerca del campo del enlace permalink en el editor de entradas. Dado que WPML utiliza distintas entradas para cada idioma, puede definir los nombres individualmente.



Editar el enlace permalink de la página




La próxima acción que deberá realizar es traducir el nombre del tipo de entrada. Esto necesita un poco más de cuidado.

Traducir nombres del tipos de entrada personalizados


Para permitir a WPML traducir los nombres de los tipos de entrada personalizados, debe aprovechar el módulo de Traducción de Cadenas.

Declarar tipos de entrada personalizados en PHP


Si desea registrar tipos de entradas personalizados de forma manual o vía PHP inserte el nombre del slug en llamadas _x(). WPML tomará dichas llamadas y asumirá que desea traducir direcciones URL.



Cuando el slug transcurre a través de la función _x(), con contexto del slug de la dirección URL, WPML lo detecta y lo registra en la tabla de traducción de cadenas.

'slug' => _x( 'book', 'URL slug', 'your_text_domain' )


Declarar tipos de entrada personalizados con Types


Para definir tipos de entrada personalizados con PHP, puede aprovechar nuestro plugin Types. Types declarará automáticamente los tipos de entrada personalizados para poder traducirlos con WPML.



Vaya a Types y edite un tipo de entrada personalizado. Si no está habilitado para traducción de nombres, verá un enlace a la pantalla de configuración de WPML:



Types enlaza a WPML para configurar la ubicación del slug


Habilitar la ubicación del nombre del tipo de entrada personalizado en WPML


A continuación, vaya a WPML->Administrador de traducción->Configuración del contenido multilingüe. Podrá ver la nueva sección para localización de slugs.



La lista para marcar, a efectos de habilitar la localización del nombre del tipo de entrada personalizada, es:



1. Convierta en traducible al tipo de entrada personalizado



Configure el tipo de entrada personalizado como Traducir




2. Habilite la traducción de slugs del sitio



Haga clic en la casilla de verificación para permitir nombres de tipos de entrada localizados en todo el sitio completo




3. Elija utilizar distintos slugs en diferentes idiomas



Haga clic en la casilla de verificación para permitir la ubicación de cada nombre de tipo de entrada personalizado




Ahora ya está pronto para traducir nombres de tipos de entrada personalizados. Ingrese sus traducciones, presione Guardar y se verán reflejadas en las direcciones URL.

Traducir archivos de tipos de entradas personalizados


Cuando se registran tipos de entradas personalizadas de forma manual, WordPress permite definir un slug archivo especial utilizando:



has_archive




Actualmente, WPML no da soporte a la traducción de slugs de archivos de tipos de entrada personalizados cuando tienen un valor diferente a «TRUE». No obstante ello, lo tenemos en la lista de pendientes para ser resuelto próximamente. Vuelva a esta página en poco tiempo para cerciorarse que esta función ya sido implementada.



*Actualización: WPML 3.2 permite definir una cadena para has_archive. Sin embargo, si el valor de dicha cadena difiere de la clave del tipo de entrada personalizado contenida en el archivo, automáticamente asumirá el valor registrado para la clave.

Ejemplo:


add_action( 'init', 'create_post_type' );
function create_post_type() {
register_post_type( 'book',
array(
'labels' => array(
'name' => __( 'Books', 'textdomain' ),
'singular_name' => __( 'Book', 'textdomain' )
),
'public' => true,
'has_archive' => __( 'book-archive', 'textdomain' ),
'publicly_queryable' => true,
'exclude_from_search' => false,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'rewrite' => array('slug' => _x( 'book', 'URL slug', 'textdomain' )),
'supports' =>array('title','editor', 'custom-fields','thumbnail')
)
);
}


A pesar que se ha definido la cadena «book-archive» para has_archive, WPML utilizará «book» en su lugar. Esto es lo que se verá en el permalink de la entrada.

Problemas detectados

No hay problemas de compatibilidad sin resolver entre este plugin y WPML. Buscar todos los problemas detectados.