Ivseti
@Ivseti
Фронтенд HTML, CSS и немного JS с PHP

Как вывести новый тип записи Wordpress?

Доброго дня! Делал все по инструкции, тип записи появился в админке, но на сайте в шаблоне выводятся все записи блога....

add_action( 'init', 'register_post_types' );
function register_post_types(){
	register_post_type( 'sert', [
		'label'  => null,
		'labels' => [
			'name'               => 'Сертификаты', // основное название для типа записи
			'singular_name'      => 'Сертификат', // название для одной записи этого типа
			'add_new'            => 'Добавить серитфикат', // для добавления новой записи
			'add_new_item'       => 'Добавление сертификаты', // заголовка у вновь создаваемой записи в админ-панели.
			'edit_item'          => 'Редактирование сертификата', // для редактирования типа записи
			'new_item'           => 'Новое ____', // текст новой записи
			'view_item'          => 'Смотреть сертификат', // для просмотра записи этого типа.
			'search_items'       => 'Искать серитфикат', // для поиска по этим типам записи
			'not_found'          => 'Не найдено', // если в результате поиска ничего не было найдено
			'not_found_in_trash' => 'Не найдено в корзине', // если не было найдено в корзине
			'parent_item_colon'  => '', // для родителей (у древовидных типов)
			'menu_name'          => 'Сертификаты', // название меню
		],
		'description'         => 'Раздел для добавления сертификатов',
		'public'              => true,
		// 'publicly_queryable'  => null, // зависит от public
		// 'exclude_from_search' => null, // зависит от public
		// 'show_ui'             => null, // зависит от public
		// 'show_in_nav_menus'   => null, // зависит от public
		'show_in_menu'        => true, // показывать ли в меню адмнки
		// 'show_in_admin_bar'   => null, // зависит от show_in_menu
		'show_in_rest'        => null, // добавить в REST API. C WP 4.7
		'rest_base'           => null, // $post_type. C WP 4.7
		'menu_position'       => 5,
		'menu_icon'           => 'dashicons-awards',
		'capability_type'   => 'post',
		//'capabilities'      => 'post', // массив дополнительных прав для этого типа записи
		//'map_meta_cap'      => null, // Ставим true чтобы включить дефолтный обработчик специальных прав
		'hierarchical'        => false,
		'supports'            => [ 'title', 'custom-fields' ], // 'title','editor','author','thumbnail','excerpt','trackbacks','custom-fields','comments','revisions','page-attributes','post-formats'
		'taxonomies'          => [],
		'has_archive'         => false,
		'rewrite'             => true,
		'query_var'           => true,
	] );
}


И когда самого вывода в шаблоне:
<?php		
                            global $post;

                            $query = new WP_Query( [
                                'posts_per_page' => 12,
                                'post-type' => 'sert',
                            ] );

                            if ( $query->have_posts() ) {
                                while ( $query->have_posts() ) {
                                    $query->the_post();
                                    ?>

                                    <?php the_title(); ?>

                                    <?php 
                                }
                            } else {
                                ?>
                                <h2>Сертификатов не найдено</h2>
                                <?php
                            }

                            wp_reset_postdata(); // Сбрасываем $post
                        ?>


И выводятся все заголовки постов из новостей, а не сертификаты... Как настроить ?
  • Вопрос задан
  • 113 просмотров
Решения вопроса 1
wppanda5
@wppanda5 Куратор тега WordPress
WordPress Mедведь
ну видимо почитать документацию
Параметра 'post-type' в WP нет, есть 'post_type'
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы