@rmltsn

Как написать идеальный wp query для пользовательской таксономии?

Есть код из archive.php

<main class="page">
	<div class="affiche">
		<div class="affiche__container _container">
			<div class="affiche__title title_h2">
				<?php single_term_title(); ?>
			</div>
			<nav class="affiche__menu">
				<?php
				$current_cat = get_queried_object();
				$args = array('child_of' => $current_cat->term_id,);
				$categories = get_categories($args);
				?>
				<ul class="affiche__menu-list">
					<?php
					if ($categories) {
						foreach ($categories as $category) {
							echo '<li>';
							echo '<a href="' . get_category_link($category->term_id) . '">' . $category->name . '</a>';
							echo '</li>';
						}
					}
					?>
				</ul>
			</nav>
			<div class="affiche__body carts affiche-carts">
				<?php
				$mainquery = get_queried_object();
				$mypost_Query = new WP_Query(array(
					'category_name' => $mainquery->slug,
					'post_status'      => 'publish',
					'posts_per_page'   => 12,
					'order'   => 'DESC'
				));

				if ($mypost_Query->have_posts()) {
					while ($mypost_Query->have_posts()) {
						$mypost_Query->the_post();
						get_template_part('./inc/loop-category');
					}
				} else {
					get_template_part('template-parts/content', 'none');
				}
				wp_reset_postdata();
				?>
			</div>
			<?php if ($mypost_Query->max_num_pages > 1) { ?>
				<script>
					var this_page = 1;
				</script>
				<div title="Еще записи" class="btn-loadmore affiche__btn button__green button" data-param-posts='<?php echo serialize($mypost_Query->query_vars); ?>' data-max-pages='<?php echo $mypost_Query->max_num_pages; ?>' data-tpl='posts'>Еще записи</div>
			<?php } ?>
		</div>
	</div>
</main>


С его помощью отлично выводятся стандартные рубрики и записи, но он не отрабатывает для пользовательских таксономий. Как починить wp_query, чтобы он отрабатывал одинаково?
  • Вопрос задан
  • 55 просмотров
Решения вопроса 1
artzolin
@artzolin Куратор тега WordPress
php, WordPress разработка сайтов artzolin.ru
В get_categories() укажите 'taxonomy' => get_queried_object()->taxonomy и лучше используйте get_terms(), чтобы не путаться

В WP_Query() укажите тип записи, который нужно получить 'post_type' => 'myposttype', а так же category_name нужно заменить на массив tax_query
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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