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.



Se state utilizzando il modulo Translation Management, andate su WPML->Translation Management e cliccate sulla scheda Multilingual Content Setup (Configurazione contenuto multilingue). Se non state utilizzando il modulo Translation Management, troverete queste opzioni su WPML->Translation Options (Opzioni di traduzione).



Configurazione del contenuto multilingue in fondo alle schermate di modifica




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 non sono 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.