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

Тема, с которой я работаю, имеет пользовательский тип сообщения, «портфолио», внутри пользовательской таксономии «portfoliocat» (определения типа сообщения и таксономии здесь ). Он работает нормально: в меню резервного копирования я могу увидеть параметр «Портфолио», откуда я могу создавать сообщения этого настраиваемого типа или категории для группировки этих сообщений.

Я попытался создать собственный виджет, в котором перечислены все категории в таксономии «portfoliocat» и все сообщения по каждой категории. Что-то вроде:

= Portfoliocat === Category 1 ===== Post 1_1 ===== Post 1_2 === Category 2 ===== Post 2_1 ===== Post 2_2 

Вместо этого я получаю:

 = Portfoliocat === Category 1 ===== Post 1_1 ===== Post 1_2 ===== Post 2_1 ===== Post 2_2 === Category 2 ===== Post 1_1 ===== Post 1_2 ===== Post 2_1 ===== Post 2_2 

То есть для каждой категории я получаю все должности, относящиеся к таксономии, независимо от того, к какой категории они принадлежат (вместо тех, которые относятся к таксономии, также относятся к категории). Код здесь .

Я думаю, что проблема заключается в строке 36 при определении «$ categoryArgs». Независимо от того, какое значение я присвою ключу категории, или если я полностью его удалю, я все равно получаю все должности в таксономии.

Я также попытался использовать термин «термин» вместо «категории» с тем же результатом.

Я очень благодарен за помощь в этом вопросе.

Solutions Collecting From Web of "Получать сообщения о персонализированном типе сообщений из категории из таксономии?"

Поскольку вы используете обычную таксономию, вы не можете использовать аргумент category . Вы можете найти некоторую информацию об извлечении таксономии в этом комментарии в документации разработчика .

В соответствии с этим, я думаю, что ваши $categoryArgs должны быть:

 $categoryArgs = array( 'orderby' => 'post_date', 'order' => 'DESC', 'post_type' => $type, 'tax_query' => array( array( 'taxonomy' => $tax, 'field' => 'slug', 'terms' => $myPostTax->slug, ) ), );