Диспетчер пользовательских типов контента WordPress — get_posts из определенной категории

Моя основная страница портфолио настроена правильно, в которой отображаются ВСЕ работы, следующий шаг, с которым у меня возникли проблемы, — это отображение ТОЛЬКО работы из определенной категории.

Под менеджером пользовательских типов контента я установил флажок «Включить категории» в разделе «Таксономии», который дал мне возможность добавлять категории к типу контента, как показано ниже.

Например: http://localhost/category/narrative будет отображать всю работу с прикрепленной категорией «Повествование», сейчас она отображает всю работу, так как я копирую & вставил код с рабочей страницы.

Как я могу получить этот шаблон category.php для обнаружения и отображения работы, связанной с категорией, которую он загружает?

<?php
/**
* The template for displaying Category Archive pages
*
* @package     WordPress
*/

$res = get_posts(array('post_type' => 'work', 'orderby' => 'menu_order', 'order' => 'ASC', 'numberposts' => -1));

get_header(); ?>

<section role="main" class="container">

<div id="da-thumbs" class="row work-list da-thumbs">

<? foreach($res as $post) : setup_postdata($post) ?>
<?
$thumbnail = get_custom_field('thumbnail');
?>

<div class="col four">
<a href="<?php echo get_permalink(); ?>">
<img src="<?=$thumbnail?>" />
<div><span><?php the_title( '<h3>', '</h3>' ); ?></span></div>
</a>
</div>

<? endforeach; ?><?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php the_content(__('(more...)')); ?>
<?php endwhile; else: ?>
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
<?php endif; ?>

</div>
</section>

<?php get_footer(); ?>

0

Решение

Ваши get_posts не фильтруются по категориям.

Сделать что-то вроде:

$the_category = get_queried_object();
$cat_id = $the_category->term_id;
$res = get_posts(array('category' => $cat_id, 'post_type' => 'work', 'orderby' => 'menu_order', 'order' => 'ASC', 'numberposts' => -1));
1

Другие решения

Других решений пока нет …