@denism300

Почему не выводятся записи из определенной категории Wordpress?

Создал собственный тип записей:
add_action('init', 'create_post_type');
function create_post_type()
{
    register_post_type(
        'courses',
        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,
            'has_archive' => true,
            'menu_position' => 4,
            'menu_icon' => 'dashicons-welcome-learn-more',
            'supports' => array(
                'title',
                'revisions',
                'page-attributes',
                'thumbnail'
            ),
        )
    );
}

и зарегистрировал таксу:
add_action('init', 'create_course_taxonomies');
function create_course_taxonomies()
{
    register_taxonomy('type_course', array('courses'), array(
        'hierarchical'  => true,
        'show_ui'       => true,
        'query_var'     => true,
        'show_admin_column' => true,
    ));
}

Добавил в админке записи, разделил их по категориям.
Пытаюсь получить записи, чтобы их вывести, но, почему-то, на выходе пустой массив.
Получаю так:
$courses_cats = get_terms('type_course');
foreach ($courses_cats as $courses_cat) {
    $courses = get_posts(array(
        'numberposts' => -1,
        'category' => $courses_cat->term_id,
        'orderby'     => 'date',
        'order'       => 'DESC',
        'post_type'   => 'courses',
        'suppress_filters' => true,
    ));
}
  • Вопрос задан
  • 25 просмотров
Решения вопроса 1
Проблема в аргументах функции get_posts. Вместо category нужно использовать tax_query.

Например:

$courses = get_posts(array(
	'numberposts' => -1,
	'tax_query' => array( array (
	   'taxonomy' => 'type_course',
	   'field' => 'term_id',
	   'terms' => $courses_cat->term_id
	) )
	'orderby'     => 'date',
	'order'       => 'DESC',
	'post_type'   => 'courses',
	'suppress_filters' => true,
));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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