Per rendere multilingue i tipi personalizzati in WordPress, i vostri tipi personalizzati devono essere dichiarati secondo la procedura di WordPress consigliata:

  1. Accertatevi che siano registrati con hook init
  2. Non utilizzate mai la chiamata GetText per il tipo di post personalizzato
  3. Utilizzate sempre le costanti TRUE e FALSE. 0 e 1 potrebbero non funzionare.
  4. Per la documentazione completa, consultate il Codex WordPress: http://codex.wordpress.org/Function_Reference/register_post_type

Ecco un esempio funzionante estratto dal nostro sito web.

<?php
add_action('init', 'icl_theme_register_custom', 0);
function icl_theme_register_custom() {
 register_taxonomy(
 'service_type',
 array('post', 'page'),
 array(
 'hierarchical' => true,
 'label' => 'Service type',
 'query_var' => true,
 'rewrite' => true
 )
 );

 register_post_type( 'testimonial',
 array(
 'description' => __( 'Testimonials.' ),
 'labels' => array(
 'name' => __( 'Testimonials' ),
 'singular_name' => __( 'Testimonial' ),
 'add_new' => __( 'Add New' ),
 'add_new_item' => __( 'Add New Testimonial' ),
 'edit' => __( 'Edit' ),
 'edit_item' => __( 'Edit Testimonial' ),
 'new_item' => __( 'New Testimonial' ),
 'view' => __( 'View Testimonial' ),
 ...

Successivamente, potete scegliere se questi tipi personalizzati sono traducibili oppure no.

Andate su WPML -> pagina Settings (Impostazioni) e scorrete fino alla sezione del tipo personalizzato che volete rendere traducibile. Ad esempio, potreste scorrere fino alla sezione Taxonomies Translation (Traduzione delle tassonomie).

Creazione di una tassonomia personalizzata traducibile
Creazione di una tassonomia personalizzata traducibile

Quando i tipi personalizzati sono traducibili, dispongono di attributi linguistici. Ciascuna voce apparirà soltanto per una lingua specifica e potete tradurli in altre lingue.

Quando utilizzate le chiamate API di WordPress per caricarli, WPML filtrerà le voci per lingua.

Quando nonsono traducibili, WPML non filtra il tipo personalizzato e le voci appariranno per tutte le lingue Questo è utile se i dati non sono unici per lingua.

Salva