Intereting Posts
Google Назначения в WordPress? update_option в WordPress AJAX Можно ли использовать URL-адрес wp-plugins (Must Use Plugins) для использования в functions.php? Как я могу разрешать конфликты между моими страницами wordpress? header_image () с CSS WordPress добавляет теги в контент плагина Пусть новая роль пользователя в «edit_others_posts» другой роли пользователя, а не своего собственного типа Очистка раздутой таблицы wp_postmeta путем удаления нескольких _thumbnail_id? Решение для контроля версий и развертывания базы данных? Заполнение ACF Выберите Dropdown из пользовательского типа сообщения Отображение настраиваемого массива полей Получить основные родительские категории для продукта Добавить поле WYSIWYG в Image Description Получите сообщение «Заголовки уже отправлены» для плагина, который я создаю, когда пытаюсь войти в систему Проверьте, существует ли плагин / активный «class_exists ()» не работает на территории плагина

Архивный шаблон для таксономии

Я зарегистрировал персонализированный тип сообщения [оборудование] и получил таксономию [equipment_type] в таксономии, что у меня есть родительская и детская категории. Например:

Оборудование (пользовательский тип сообщения)

Типы оборудования (таксономия)

Камеры (родительский термин)

  • Камера A (Детский термин)

  • Камера B

То, что я хотел бы создать, – это фактически страница архива для терминов таксономии. Поэтому, когда выбраны «Камеры» или «Камера А», он показывает, что 12 сообщений с заголовком и изображением (ссылки на один пост) плюс некоторые разбивки на страницы.

Я пробовал стандартный WP-запрос и Loop, и он всегда заканчивает показывать все столбцы таксономий на всех условиях.

В настоящее время у меня есть шаблон taxonomy-equipment_types.php настроенный для обработки запроса.

Solutions Collecting From Web of "Архивный шаблон для таксономии"

Я хочу документировать это, потому что недавно нашел ответ.

Проблема с таксономией заключается в том, что у большинства разработчиков есть мнение о том, что таксономия будет видна внутри URL- post_type :

 http://hostname/post_type/taxonomy_term 

Вместо этого вы найдете URL-адрес:

 http://hostname/taxonomy_slug/taxonomy_term 

Это означает, что мы часто можем создавать шаблон правильно, так как

 taxonomy-taxonomy_slug-taxonomy_term.php 

Но правильный способ его использования – ожидать его внутри URL-адреса

 http://hostname/taxonomy_slug/taxonomy_term 

Чтобы просмотреть правильный URL для таксономии, мы можем использовать

 get_the_term_list($post->ID,'taxonomy_slug') 

И проверьте, где будет ссылка.

Иерархия шаблонов WordPress предоставляет точный файл шаблона, который вам нужен: taxonomy-{taxonomy}-{term}.php .

Таким образом, для создания пользовательского шаблона для терминов cameras в области таксономии equipment_types вы должны создать файл с именем taxonomy-equipment_types-cameras.php .

(Обратите внимание: вы также можете создать файл шаблона для самой таксономии , просто опустите {term} slug: taxonomy-{taxonomy}.php или taxonomy-equipment_types.php в вашем случае.)

Вы можете условно вывести контент на основе иерархии, запросив либо термин parent, либо свойства объекта, возвращаемые get_term() , либо термин children, через get_term_children() .

У меня была аналогичная проблема. Проблема с вышеупомянутыми ответами заключается в том, что все они требуют от вас указать CPT, таксономию или термин.

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

( изначально с этого поста с помощью GhostToast )

  <?php get_header(); ?> <div id="content"> <div id="main"> <ul> <? // Start taxonomy term archives query $post_type = get_post_type(); // find out CPT name $taxonomies = get_object_taxonomies($post_type); // Find taxonomies if($taxonomies){ foreach($taxonomies as $taxonomy){ // only want hierarchial -- no tags please if(is_taxonomy_hierarchical($taxonomy)){ $terms = get_terms($taxonomy, array( 'orderby' => 'name', 'order' => 'Asc', 'hide_empty' => true )); foreach ( $terms as $term ) { // example output below ?> <li> <h1><a href="<?php echo get_term_link($term->slug, $taxonomy); ?> "><? echo $term->name; ?></a></h1> <div class="imgBox"> <a href="<?php echo get_term_link($term->slug, $taxonomy); ?> " title="<? echo $term->name; ?>" > <img src="<?php echo get_template_directory_uri(); ?>/timthumb.php?src=/library/images/dingy-placeholder.png&amp;h=196&amp;w=285&amp;zc=1" alt="<?php the_title(); ?>" /></a> </div> <div class="the-excerpt"> <a href="<?php echo get_term_link($term->slug, $taxonomy); ?> "><? echo $term->description; //you can add this in admin ?> - click to view more</a> </div> </li> <? } } } }?> </ul> <?php wp_reset_query(); ?> </div> <!-- end #main --> </div> <!-- end #content --> <?php get_footer(); ?> 

Сохраните выше в файле, называемом archive-mycpt.php, а затем в файле archive.php добавьте это после вызова заголовка;

 <?php get_header(); ?> <?php // is this one of our CPT ? If so, direct to custom archive page if ( is_custom_post_type() ){ include (TEMPLATEPATH . '/archive-mycpt.php'); // if not continue... } else { ?> <!-- archive.php content --> <? } ?>