ld161100
@ld161100
web-разработчик

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

В functions.php регистрирую пользовательский тип записей и таксономию:
add_action('init', 'doors_post_type');
function doors_post_type(){
	register_taxonomy('category_door', array('doors'), array(
		'label'                 => 'Категории', // определяется параметром $labels->name
		'labels'                => array(
			'name'              => 'Категории',
			'singular_name'     => 'Категория',
			'search_items'      => 'Искать Категории',
			'all_items'         => 'Все категории',
			'parent_item'       => 'Родит. Категория',
			'parent_item_colon' => 'Родит. Категория:',
			'edit_item'         => 'Ред. Категории',
			'update_item'       => 'Обновить Категории',
			'add_new_item'      => 'Добавить Категорию',
			'new_item_name'     => 'Новая категория',
			'menu_name'         => 'Категория',
		),
		'description'           => 'Категории дверей', // описание таксономии
		'public'                => true,
		'show_in_nav_menus'     => false, // равен аргументу public
		'show_ui'               => true, // равен аргументу public
		'show_tagcloud'         => true, // равен аргументу show_ui
		'hierarchical'          => true,
		'rewrite'               => array('slug'=>'doors', 'hierarchical'=>false, 'with_front'=>false, 'feed'=>false ),
		'show_admin_column'     => true, // Позволить или нет авто-создание колонки таксономии в таблице ассоциированного типа записи. (с версии 3.5)
	) );


	register_post_type('doors', array(
		'labels'             => array(
			'name'               => 'Двери', // Основное название типа записи
			'singular_name'      => 'Дверь', // отдельное название записи типа Book
			'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,
		'publicly_queryable' => true,
		'show_ui'            => true,
		'show_in_menu'       => true,
		'query_var'          => true,
		'rewrite'            => true,
		'capability_type'    => 'post',
		'has_archive'        => true,
		'hierarchical'       => false,
		'menu_position'      => null,
		'menu_icon'          => 'dashicons-smartphone',
		'supports'           => array('title','editor')
	) );
}


Потом через шорткод вывожу на нужную мне страницу
add_shortcode( 'shortcode_doors', 'generate_doors_new' );

function generate_doors_new () {
	$articles = new WP_Query('post_type=doors&category_name=noce');
	?>
	<div class="row">
		<? while ($articles -> have_posts()):$articles -> the_post(); ?>

			<div class="col-3 door_wrap">
				<img src="<?php the_field('door_image', $post); ?>" alt="">
				<!-- <p><?php //the_field('door_header', $post); ?></p> -->
				<p><?php the_title(); ?></p>
			</div>

		<? endwhile; wp_reset_postdata(); ?>
	</div>
	<?
}


ярлык нужной категории называется "noce", пробовал по ID через cat=2, тоже ничего не выводит, если убрать категорию из запроса то все выводит.
Помогите пожалуйста
  • Вопрос задан
  • 55 просмотров
Решения вопроса 1
@its2easyy
category_name=noce ищет в дефолтных категориях, а у вас для поиска по своей таксономии нужно строить запрос со своей таксономией category_door https://wp-kama.ru/function/wp_query#taxonomies.
По идее должно сработать с category_door=noce
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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