Вопрос: Шаблон архива 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%/

оба отображаются index.php  шаблон темы WordPress. Это актуальная страница 404, но поскольку у нас нет 404.php, используется index.php.

Видимость типа post сделана переводимой в настройках WPML.

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


13


источник


Ответы:


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

'has_archive' => 'case-studies',

чтобы:

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

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


5



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

Строка не была переведена в формате WPML -> String

Когда я перевел его (тематические исследования -> де / тематические исследования), это сработало.

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


2



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

'has_archive' => 'case-studies',

в

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

ТОГДА

Перейдите в «Настройки»> «Постоянная ссылка» и нажмите «Сохранить».

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

Ура!


1



ты пробовал

'has_archive' => true

?

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


0