Чтобы пользовательские виды объектов в WordPress стали многоязычными, их следует объявить в соответствии с рекомендуемой процедурой WordPress:

  1. Проверьте, чтобы они были зарегистрированы в перехватчике init
  2. Никогда не используйте вызов GetText для пользовательского типа записей
  3. Всегда используйте константы TRUE и FALSE. 0 и 1 могут не сработать.
  4. С полной документацией можно ознакомиться в WordPress Codex – http://codex.wordpress.org/Function_Reference/register_post_type

Вот рабочий пример кода, который мы используем на своем сайте.

<?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' => __( 'Отзывы.' ),
 'labels' => array(
 'name' => __( 'Отзывы' ),
 'singular_name' => __( 'Отзыв' ),
 'add_new' => __( 'Добавить новый' ),
 'add_new_item' => __( 'Добавить отзыв' ),
 'edit' => __( 'Редактировать' ),
 'edit_item' => __( 'Редактировать отзыв' ),
 'new_item' => __( 'Новый отзыв' ),
 'view' => __( 'Просмотреть отзыв' ),
 ...

Затем можно выбрать, переводимы ли эти пользовательские виды объектов, или нет.

Перейдите на страницу WPML -> Настройки и прокрутите к разделу пользовательского вида объектов, который вы хотите сделать переводимым. Например, можно прокрутить к разделу Перевод систематики.

Как сделать пользовательскую систематику переводимой
Как сделать пользовательскую систематику переводимой

Когда пользовательские виды объектов переводимы, у них есть языковые атрибуты. Каждая запись будет отображаться только на определенном языке и их можно будет переводить на другие.

WPML отфильтрует их по языкам при использовании API-вызовов WordPress для загрузки.

Когда пользовательские виды объектов нельзя перевести, WPML не фильтрует их, и элементы будут отображаться для всех языков. Этот вариант удобен, если данные на отдельных языках не уникальны.

Сохранить