Um benutzerdefinierte Typen in WordPress mehrsprachig zu machen, müssen Sie Ihre benutzerdefinierten Typen gemäß dem empfohlenen WordPress-Verfahren deklarieren:

  1. Achten Sie darauf, dass sie im ‚init‚-Hook registriert sind.
  2. Verwenden Sie für benutzerdefinierte Beitragstypen nie einen GetText-Befehl.
  3. Verwenden Sie immer die Konstanten TRUE und FALSE. 0 und 1 funktionieren eventuell nicht.
  4. Die vollständige Dokumentation finden Sie im WordPress-Codex – http://codex.wordpress.org/Function_Reference/register_post_type

Hier ist ein funktionierendes Beispiel, das wir auf unserer eigenen Website verwenden.

<?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' ),

                ...

Dann können Sie auswählen, ob diese benutzerdefinierten Typen übersetzbar sind oder nicht.

Wenn Sie das Translation Management-Modul verwenden, gehen Sie auf WPML -> Translation Management und klicken Sie auf den Reiter Einrichtung mehrsprachiger Inhalte. Ansonsten, ohne das Translation Management-Modul, finden Sie diese Optionen unter WPML -> Übersetzungsoptionen.

Einrichtung mehrsprachiger Inhalte unten auf den Bearbeitungsbildschirmen

Wenn benutzerdefinierte Typen übersetzbar sind, haben sie Sprachattribute. Jeder Eintrag erscheint nur für eine bestimmte Sprache und Sie können ihn in andere Sprachen übersetzen.

WPML filtert die Einträge für die jeweilige Sprache, wenn Sie zum Laden die WordPress-API verwenden.

Sind die Typen nicht übersetzbar, filtert WPML die benutzerdefinierten Typen nicht, die Einträge erscheinen dann für alle Sprachen. Dies ist nützlich, wenn die Daten nicht für alle Sprachen einheitlich sind.