Intereting Posts
Результат из wp_send_json добавляет фид строки Отключенный визуальный редактор и WordPress продолжают добавлять строки в мой код WordPress MU 2.9.2 до 3.0.5 Изменения в category.php Включает ли приватный аргумент WP_Query для статуса публикации только для опубликованного в частном порядке контента? Обратный вызов короткого кода для add_action ('wp_footer') Есть ли способ ограничить количество элементов верхнего уровня в пользовательском меню? Как изменить сопутствующие продукты image thumbnail Woocommerce? Отключить новые сообщения с уведомлением пользователей Получить URL-адрес страницы в блоге Параметры Пользовательские меню и таксономии Как настроить пользовательские поля комментариев Сортируемые столбцы администратора, когда данные не поступают из post_meta Отображать PHP в значениях HTML WordPress взломан? Сообщения не найдены в панели управления подсветка синтаксиса для theme-editor.php?

Отображать сообщения, сгруппированные по типу post в taxonomy.php

У меня есть два типа Post («newpost» и «book»), связанные с пользовательской таксономией (newcategory) (writer1, writer2, writer3 …)

Мне нужно показать каждый пользовательский пост в отдельном стиле с термином Post.

Мой код:

$post_type = array('newpost','book'); //echo get_query_var('term'); foreach($post_type as $postType) { $args = array( 'post_type' => $postType, 'tax_query' => array( array( 'taxonomy' => $taxonomy, 'field' => 'slug', 'terms' => rawurldecode(get_query_var('term')) ) ) ); $my_query = new WP_Query( $args ); if($my_query->have_posts()) : while ($my_query->have_posts()) : $my_query->the_post(); { //I got all the post here by //echo '<h1>'.the_title().'</h1>'; but i have need it separately. //Here I want to display all the term of the custom post separately endwhile; endif; } 

Укороченная версия

В пределах вашего вызова цикла: get_template_part( 'loop', get_post_type() );

Теперь вам нужен loop.php как общий шаблон loop.php (вид по умолчанию). Вы можете создать столько шаблонов post_type, сколько вам нужно, например loop-newpost.php и loop-book.php .

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

Лучшее удовлетворение

Добавьте свои CPT .

 function add_my_custom_post_type() { $args = array( 'menu_position' => 8, 'menu_icon' => 'dashicons-admin-post', 'public' => true, 'publicly_queryable' => true, 'query_var' => false, 'capability_type' => 'post', 'has_archive' => true, 'rewrite' => array( 'slug' => 'new-post', 'feeds' => true, 'pages' => true, 'with_front' => true, ), 'taxonomies' => array( 'author' ), 'supports' => array( 'title', 'editor', 'thumbnail', 'excerpt' ) ); register_post_type( 'newpost', $args ); $args['labels']['name'] = __('Books', 'my_textdomain'); $args['labels']['all_items'] = __('All Books', 'my_textdomain'); $args['labels']['singular_name'] = __('Book', 'my_textdomain'); $args['rewrite']['slug'] = 'book'; register_post_type( 'book', $args ); } add_action('init', 'add_my_custom_post_type'); 

Добавьте свою обычную таксономию .

Внимание: автор является slug, используемым WordPress, поэтому вам нужно быть творческим: tax_author для имени таксономии & query_var и the-author для пули.

 function add_my_custom_taxonomy() { register_taxonomy( 'tax_author', array( 'newpost', 'book' ), array( 'hierarchical' => false, 'labels' => array( 'name' => __( 'Authors', 'my_textdomain' ), 'singular_name' => __( 'Author', 'my_textdomain' ), 'menu_name' => __( 'Author', 'my_textdomain' ), ), 'show_ui' => true, 'show_admin_column' => true, 'update_count_callback' => '_update_post_term_count', 'query_var' => true, 'rewrite' => array( 'slug' => 'the-author', 'with_front' => true, 'hierarchical' => false ) ) ); } add_action('init', 'add_my_custom_taxonomy'); 

Добавьте CPT к основным запросам в вопросах с помощью pre_get_posts hook

 function add_my_custom_post_type_to_query( $query ) { if ( $query->is_main_query() && $query->is_home() && !is_admin() /* No filtering of CPTs in the backend */) { $query->set( 'post_type', array('newpost', 'book') ); } } add_action( 'pre_get_posts', 'add_my_custom_post_type_to_query' ); 

Изменить : вам не нужно это для таксономий, но если вы хотите добавить свой CPT к основному запросу, используйте этот крючок. – Спасибо @Pieter Goosen за разъяснение.

В taxonomy-tax_author.php шаблона taxonomy-tax_author.php вы можете использовать основной цикл :

 if (have_posts()) while (have_posts()): the_post(); get_template_part( 'loop', get_post_type() ); 

Теперь вам нужен loop.php как общий шаблон loop.php (вид по умолчанию). Вы можете создать столько шаблонов post_type, сколько вам нужно, например loop-newpost.php и loop-book.php .

Обновление : если вы хотите заказать запрос по post_type, вам нужно снова подключиться к pre_get_posts

 function order_my_custom_taxonomy( $query ) { if ( $query->is_main_query() && $query->is_tax('tax_author') && !is_admin() /* No filtering of CPTs in the backend */) { $query->set( 'orderby', 'type' ); $query->set( 'order', 'ASC' ); } } add_action( 'pre_get_posts', 'add_my_custom_post_type_to_query' ); 

Для получения подробной информации о том, как фильтровать и заказывать, следуйте приведенным ссылкам.

Дополнительная информация о:

  • Тип сообщения: пользовательские типы сообщений
  • Таксономия: пользовательские таксономии
  • Крючок действия: pre_get_posts
  • Загрузка шаблонов: wptherightway.org
  • Сортировать по: типу