Шаблон архива типов WPML и пользовательских записей

Я использую WPML 3.0.2-A с WordPress 3.8.1

у меня есть пользовательский тип записи определяется следующим образом:

function add_custom_posts(){
    $args = array(
            'labels' => array(
                    'name' => __( 'Showcases' ),
                    'singular_name' => __( 'Showcases' ),
                    'add_new_item' => __( 'Add New Showcase'),
                    'edit_item' => __( 'Edit Showcases' ),
                    'view_item' => __( 'View Showcase' ),
                    'search_items' => __( 'Search Showcases' ),
                    'not_found' => __( 'No Showcases found.' ),
                    'not_found_in_trash' => __( 'No Showcases found in Trash.' )
            ),
            'public' => true,
            'has_archive' => 'case-studies',
            'menu_position' => 5,
            'taxonomies' => array('post_tag'),
            'supports' => array( 'title', 'thumbnail', 'editor', 'excerpt', 'page-attributes' ),
            'rewrite' => array('slug' => 'case-studies', 'with_front' => false),
            'capability_type' => 'post',
            'hierarchical' => false,
        );

    register_post_type('showcases', $args);

}

add_action( 'init', 'add_custom_posts', 100 );

посещение пользовательского архива типов сообщений и одиночных URL-адресов сообщений для языка по умолчанию работает нормально. Например:

/case-studies/ 
/case-studies/%postname%/

работают отлично и отображают то, что они должны.

однако это не работает для другого языка:

/de/case-studies/ 
/de/case-studies/%postname%/

как отображение .в PHP шаблон WordPress тема. На самом деле это страница 404, но так как у нас нет 404.php, индекс.используется php.

витрины тип столба сделан переводимым в настройках WPML.

вы знаете, почему это и как это исправить?

4 ответов


нашел этот поток поддержки где они говорят, что нужно изменить следующую строку (в коде):

'has_archive' => 'case-studies',

в:

'has_archive' => icl_translate('wpml_custom', 'wpml_custom_showcases', 'case-studies'),

может быть хорошей идеей попросить официальную поддержку для этого, так как это коммерческое программное обеспечение, и никакая документация не доступна.


Я узнал, в чем проблема.

строка не была переведена в WPML - > String translations

когда я перевел его (case-studies - > de / case-studies), он работал.

на самом деле он работал во всех вариантах - как мой исходный код, так и код, предложенный в ответах.


Я думаю, что это будет работать для вас, просто не хватает каких-то действий :)

'has_archive' => 'case-studies',

to

'has_archive' => icl_translate('wpml_custom', 'wpml_custom_showcases', 'case-studies'),

затем

заходим в Настройки > постоянные ссылки и нажмите "Сохранить".

Дайте мне знать, если это работает отлично.

Ура!


ты пробовал

'has_archive' => true

?

должен работать по желанию, если я правильно понял.