WPML vous permet d’utiliser des URL uniques pour du contenu personnalisé dans différentes langues. Cela inclut la traduction de la ligne-bloc de publication, ainsi que le nom du type de publication personnalisé.

Les URL pour les types de publication personnalisés peuvent inclure le nom du type de publication et le nom de la page. En général, les types de publication personnalisés dans différentes langues ressembleront à ceci :

  • /houses/my-green-house/
  • /maisons/ma-maison-verte/

La première partie de l’URL, en gras, est le type de publication. Le deuxième type est le nom de la page.

Pour traduire les noms de page, cliquez sur le bouton Modifier à côté du champ permalien dans l’éditeur de publication. Puisque WPML utilise une publication différente pour chaque langue, vous pouvez définir leurs noms individuellement.

Modifier les permaliens de page
Modifier les permaliens de page

Traduire les noms des types de publication personnalisés

Pour permettre à WPML de traduire les noms des types de publication personnalisés, vous devez utiliser le module de traduction de chaînes, String Translation.

Déclarer les types de publication personnalisés en PHP

Si vous enregistrez les types de publication personnalisée manuellement via PHP, WPML identifiera les appels et enregistrera les lignes-blocs pour la traduction.

Déclarer des types de publication personnalisés avec Types

Pour définir des types de publication personnalisés sans PHP, vous pouvez utiliser notre plug-in Types. Types déclarera automatiquement les types de publication personnalisés, afin que vous puissiez les traduire dans WPML.

Rendez-vous sur Types et modifiez un type de publication personnalisé. Si la fonction n’est pas activée pour la traduction de nom, vous verrez s’afficher un lien vers l’écran de configuration de WPML :

Types se connecte à WPML pour configurer la localisation de la ligne-bloc
Types se connecte à WPML pour configurer la localisation de la ligne-bloc

Activation de la localisation du nom du type de publication personnalisée dans WPML

Ensuite, allez à la page WPML -> Paramètres. Vous verrez la nouvelle section pour localiser les lignes-blocs.

La liste de contrôle d’activation de la localisation du nom de type de publication personnalisé est :

1. Rendre ce type de publication personnalisé traduisible

Définir le type de publication personnalisé à traduire
Définir le type de publication personnalisé à traduire

2. Activer la traduction des lignes-blocs pour le site

Activation de la traduction des lignes-blocs de base de publication personnalisée et de taxonomie
Activation de la traduction des lignes-blocs de base de publication personnalisée et de taxonomie

3. Sélectionner cette option pour utiliser les différentes lignes-blocs dans différentes langues

Cliquer sur la case à cocher pour activer la localisation de chaque nom de type de publication personnalisé
Cliquer sur la case à cocher pour activer la localisation de chaque nom de type de publication personnalisé

Vous êtes maintenant prêt à traduire les noms des types de publication personnalisés. Saisissez leurs traductions, cliquez sur Enregistrer et elles devraient apparaître dans les URL.

Traduction des types de publication personnalisée archivés

Quand vous enregistrez les types de publication personnalisée manuellement, WordPress vous permet de configurer une ligne-bloc d’archive distincte qui utilise :

 Définir le type de publication personnalisé à traduire

À partir de la version 3.2, WPML permet de définir has_archive sur une chaîne. Cependant, si la valeur de la chaîne est définie sur autre chose que rewrite['slug'], ou si la ligne-bloc du nom CPT n’est pas défini, la ligne-bloc de l’archive ne pourra pas être traduite.

Exemple de code 1 :

Dans cet exemple de code, nous définissons 'has_archive' => true. En supposant que la ligne-bloc livre a été traduite en espagnol en libro, les liens d’archivage sont les suivants :

  • Anglais (langue par défaut) : http: //mydomain.tld/book/
  • Espagnol (deuxième langue) : http: //mydomain.tld/es/libro/
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' => true,
 'publicly_queryable' => true,
 'exclude_from_search' => false,
 'show_ui' => true,
 'show_in_menu' => true,
 'query_var' => true,
 'rewrite' => array('slug' => 'book'),
 'supports' => array('title','editor', 'custom-fields','thumbnail')
 )
 );
}

Exemple de code 2 :

Dans cet exemple de code, nous définissons une chaîne spécifique pour le paramètre 'has_archive' => 'my-books'. Maintenant, les liens d’archive sont les suivants :

  • Anglais (langue par défaut) : http: //mydomain.tld/my-books/
  • Espagnol (deuxième langue) : http: //mydomain.tld/es/mis-libros/
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' => 'my-books', // N'utilisez pas les fonctions gettext pour ce paramètre
 'publicly_queryable' => true,
 'exclude_from_search' => false,
 'show_ui' => true,
 'show_in_menu' => true,
 'query_var' => true,
 'rewrite' => array('slug' => 'book'),
 'supports' => array('title','editor', 'custom-fields','thumbnail')
 )
 );
}