@veteralex

Wordpress. Не выводятся посты произвольной типа записи определенной категории?

Здравствуйте.
Создал произвольную запись и категорию.
function register_post_type_victory(){
    register_taxonomy('period', array('victory'), array(
		'hierarchical'  => true,
		'labels'        => array(
			'name'              => _x( 'Год', 'taxonomy general name' ),
			'singular_name'     => _x( 'Год', 'taxonomy singular name' ),
			'search_items'      =>  __( 'Поиск' ),
			'all_items'         => __( 'Года' ),			
			'edit_item'         => __( 'Редактирование' ),
			'update_item'       => __( 'Изменение' ),
			'add_new_item'      => __( 'Добавить год' ),
			// 'new_item_name'     => __( 'New Genre Name' ),
			'menu_name'         => __( 'Года' ),
		),
		'public' => true,
		'show_ui'       => true,
		'query_var'     => true,
		//'rewrite'       => array( 'slug' => 'the_genre' ), // свой слаг в URL
	));

	register_taxonomy_for_object_type( 'period', 'victory');

    register_post_type('victory', 
        array(
            'labels' => array(
                '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'          => __('Достижения'), // название меню
            ),               
        'public' => true,
        'menu_position'       => 27,
		'menu_icon'           => 'dashicons-awards',
		'supports'            => [ 'title', 'editor', 'thumbnail' ], // 'title','editor','author','thumbnail','excerpt','trackbacks','custom-fields','comments','revisions','page-attributes','post-formats'
        'has_archive' => true,
        'rewrite' => array('slug' => 'victory'),
        'taxonomies' => array( 'period' ),
        )
    );
}

Создал запись с категорией.
Записи выводятся.
Категории отдельно выводятся.
Но хочу вывести записи принадлежащие определенной категории - ничего не выводит
Пробовал получить категорию поста
$test = get_the_category( $post->ID );
Выводит пустой массив
Посты вывожу так
$my_posts = get_posts( array(
									'numberposts' => -1,
									'category_name'    => 'period',
									'orderby'     => 'date',
									'order'       => 'DESC',
									
									'post_type'   => 'victory',
									// 'suppress_filters' => true, // подавление работы фильтров изменения SQL запроса
								) );

В чем проблема?
  • Вопрос задан
  • 130 просмотров
Решения вопроса 1
@aex-svs
<?php                                     
  $query = new WP_Query( array(
      'posts_per_page' => -1,
      'post_type' => 'victory',
      'tax_query' => array(
       array(
       'taxonomy' => 'period',                                                                 
       'terms' => '2', // id категории можно узнать в админке при наведении на категорию
                                                               )
                                                             )
                                                           ) );

                                                        $i = 1;
                                                        while ($query->have_posts()) {
                                                        $query->the_post();
                                                        ?>

шаблон
<?php
                                                }
                                                wp_reset_postdata(); // сброс
                                                ?>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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