Pour créer des custom types dans WordPress multilingue, vos custom types doivent être déclarés selon la procédure WordPress recommandée :

  1. Veillez à ce qu’ils soient enregistrés dans le crochet « init »
  2. N’obtenez jamais d’appel GetText
  3. Utilisez toujours les constantes VRAI et FAUX. 0 et 1 ne fonctionneront sûrement pas.
  4. Consultez le codex WordPress pour obtenir une documentation complète – http://codex.wordpress.org/Function_Reference/register_post_type

Voici un exemple concret que nous utilisons sur notre propre site 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' ),

                ...

Ensuite, vous pouvez choisir si ces custom types sont traduisibles ou pas.

Si vous utilisez le module de gestion de traduction, allez à WPML->Gestion de traduction et cliquez sur l’onglet Configuration du contenu multilingue. Sinon, sans le module de gestion de traduction, vous trouverez ces options sous WPML->Options de traduction.

Configuration du contenu multilingue en bas des écrans d'édition

Lorsque les custom types sont traduisibles, ils ont des caractéristiques linguistiques. Chaque entrée va apparaître uniquement pour une langue spécifique et vous pouvez les traduire dans d’autres langues.

WPML va filtrer les entrées par langue lorsque vous utilisez les appels WordPress API pour les charger.

S’ils ne sont pas traduisibles, WPML ne filtre pas le custom type et les entrées apparaîtront pour toutes les langues. C’est pratique lorsque les données ne sont pas uniques à chaque langue.