В файле functions.php Я создал пользовательскую категорию
$labels = array(
'name' => _x('Partners', 'post type general name'),
'singular_name' => _x('Partners', 'post type singular name'),
'add_new' => _x('Add New', 'partners'),
'add_new_item' => __("Add New Partners"),
'edit_item' => __("Edit Partners"),
'new_item' => __("New Partners"),
'view_item' => __("View Partners"),
'search_items' => __("Search Partners"),
'not_found' => __('No partners found'),
'not_found_in_trash' => __('No partners found in Trash'),
'parent_item_colon' => ''
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'menu_icon' => 'dashicons-groups',
'query_var' => true,
'rewrite' => true,
'capability_type' => 'post',
'hierarchical' => false,
'menu_position' => null,
'supports' => array('title','thumbnail','excerpt', 'editor')
);
register_post_type('partners',$args);
В шаблоне Партнера я написал:
<?php
$args = array(
'posts_per_page' => -1, // Get all posts
'post_type' => 'partners', // Query for the default Post type
'order_by' => 'post_date' // Order by date posted
);
$last_five_posts = get_posts( $args );foreach ( $last_five_posts as $post ) : setup_postdata( $post );?>
И это прекрасно работает. На странице отображаются все сообщения, которые я редактировал в пользовательской категории.
Проблема вышла с переводом. Я использую плагин WMPL, я использую два языка: итальянский и английский. Страница партнеров показывает мне оба языка:
Итальянская страница:
сообщение ORIGINAL1
сообщение переведено1
сообщение ORIGINAL2
сообщение переведено2
…
Английская страница:
сообщение ORIGINAL1
сообщение переведено1
сообщение ORIGINAL2
сообщение переведено2
…
Я думаю, что проблема в коде, я что-то упустил.
Вы знаете, как это исправить?
Поддержка ответила мне. В шаблоне партнера вместо использования функции get_posts () мне пришлось использовать класс WP_Query:
<?php
$args = array(
'posts_per_page' => -1, // Get all posts
'post_type' => 'partners', // Query for the default Post type
'order_by' => 'post_date' // Order by date posted
);
$last_five_posts = new WP_Query( $args );if( $last_five_posts->have_posts() ): while( $last_five_posts->have_posts() ) : $last_five_posts->the_post();
?>
[/ NOEDIT]
Других решений пока нет …