использование пользовательских таксономий с пользовательскими типами сообщений: отображение списка сообщений по категории

Я до сих пор не совсем понимаю, когда лучше использовать пользовательские типы сообщений против пользовательских таксономий .. или оба вместе одновременно. У меня есть Menus как мой пользовательский тип сообщения. В этом нет ничего, что должно отличаться от любого другого сообщения на сайте. Мне нужно отобразить список типов меню (традиционный, индийский, кошерный и т. Д.), А затем под каждым типом – список каждого сообщения (меню) этого типа. Как лучший способ сделать это? Я хотел бы оставить его в отдельном разделе из блога, и мне нравится пользовательский пункт меню в администраторе, поэтому он идеален именно так. Я просто зациклился на том, как получить по существу страницу категории (меню), в которой будут перечислены все подкатегории (типы меню) и все записи в этих подкатегориях.

Мне нравится думать о персонализированном типе сообщений, как о том, как вы определяете структуру своего контента, поэтому меню – прекрасный пример того, как использовать настраиваемый тип сообщений для структурирования ваших данных сообщений, чтобы больше напоминать меню.

Ваша потребность классифицировать ваши меню на разные типы была бы хорошо встречена пользовательской таксономией. Как это сделать, см. Запись codex для register_taxonomy ()

После того, как вы настроите настраиваемую таксономию типа меню и некоторые меню, назначенные для разных типов меню, пришло время создать файл шаблона, который представляет данные по вашему желанию. Я не уверен, что это будет лучший способ, но он должен работать очень хорошо. Вы можете запустить новый (или дублированный) файл шаблона и вызвать его archive-menus.php (предполагается, что «меню» – это системное имя для настраиваемого типа записи, который вы сделали).

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

<?php // change 'taxonomyName' to the system name of your custom taxonomy. $terms = get_terms('taxonomyName', array( 'orderby' => 'name', 'order' => 'ASC' )); echo "<ul id='menu-types'>"; foreach($terms as $term) { $termSlug = $term->slug; echo "<li><h2>".$term->name."</h2><ul>"; query_posts('post_type=menus&taxonomyName='.$termSlug); while ( have_posts() ) : the_post(); echo "<li>".get_the_title()."</li>"; endwhile; echo "</ul></li>"; } echo "</ul>"; ?> 

Предполагая, что ваша пользовательская таксономия настроена правильно, и оба экземпляра «taxonomyName» в вышеуказанном коде ^^^ были отредактированы с учетом вашего пользовательского имени таксономии, тогда цикл должен отображать нужные вам данные. Используя «красивые» постоянные ссылки, вы должны уметь ссылаться на шаблон archive-menus.php с URL-адресом, например http://yoursite.com/menus . Просто убедитесь, что где вы register_post_type () в файле functions.php, вы установили 'has_archive' => true, .