Здравствуйте!
Создал и зарегистрировал произвольный тип записей, добавив в конец файла functions.php темы twentyfifteen следующий код:
function article_register_post_type_init() {
$labels = array(
'name' => 'Статьи',
'singular_name' => 'Статью',
'add_new' => 'Добавить статью',
'add_new_item' => 'Добавить новую статью',
'edit_item' => 'Редактировать статью',
'new_item' => 'Новая статья',
'all_items' => 'Все статьи',
'view_item' => 'Просмотр статей на сайте',
'search_items' => 'Искать статьи',
'not_found' => 'Статей не найдено.',
'not_found_in_trash' => 'В корзине нет статей.',
'menu_name' => 'Статьи'
);
$args = array(
'labels' => $labels,
'public' => true,
'show_ui' => true,
'has_archive' => true,
'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats' ),
'taxonomies' => array('post_tag','category'),
'rewrite' => true,
'can_export' => true,
'show_in_menu' => true,
'menu_position' => 5,
'show_in_nav_menus' => true,
'publicly_queryable' => true,
'exclude_from_search' => false,
'query_var' => true,
'capability_type' => 'page',
'rest_base' => 'my_article'
);
register_post_type('my_article', $args);
}
add_action( 'init', 'article_register_post_type_init' );
Категории и авторов использовал те, что уже есть в wordpress.
Для вывода на сайте этого типа записей, туда же, в functions.php добавил:
function add_article_in_main_query( $query ) {
if ($query->is_main_query() && !is_admin() ){
$query->set('post_type', array('my_article'));
}
return $query;
}
add_action( 'pre_get_posts', 'add_article_in_main_query' );
Как и было сказано во всех возможных инструкциях, зашел в «Настройки» -> «Постоянные ссылки» в админке и сохранил текущий параметр (у меня установлено «Простые», «/?p=123»).
Так же создал файл «archive-my_article.php» и «front-page.php» в папке с темой.
В настройках сайта выбрано отображать «Ваши последние записи» на главной странице.
Когда захожу на главную страницу, (url = localhost), получаю «Nothing Found» и темплейт из «front-page.php».
Когда захожу на localhost/?post_type=my_article, вижу архив записей кастомного типа и темплейт из «archive-my_article.php» с постраничной навигацией.
Подскажите, пожалуйста, как сделать, чтобы на главной странице (localhost) отображался архив записей кастомного типа и темплейт из «archive-my_article.php» с постраничной навигацией?