Intereting Posts
Пользовательская конечная точка PHP для вызова AJAX плагина Как отключить * редактор сообщений Выводить поля вручную в шаблонах электронной почты Woocommerce Сортировка сообщений в алфавитном порядке по категориям / пользовательской таксономии, вставка разделителя между различными типами Исключить черновики во всех () представлениях edit.php Удалить знаки продажи с сайта в фирменном стиле? Как отображать таксономические данные метаданных на странице архива? Страницы запросов на основе тегов Проблема с загрузкой изображений из дочерней темы CSS-файл с соответствующим путем Создать пользовательскую установку WP с плагинами, темой и т. Д. Уже установлен? Могу ли я заставить все загруженные изображения быть уменьшенными по качеству? Вставляйте вложения из пользовательского загрузчика в пост (обычный стиль загрузчика) add_action для lost_password или изменить wp-login.php? action = lostpassword Как я могу исключить автоматическое обновление плагинов? Последствия при использовании PHP включают TEMPLATEPATH?

Несколько настраиваемых циклов типа сообщения в category.php

У меня есть несколько типов пользовательских сообщений, которые используют одну таксономию категорий. Давайте назовем «место проведения» и «рассказ» CPT и скажем, что мы классифицировали каждого из них как «foo».

У меня уже есть следующий код, чтобы убедиться, что они являются частью циклов таксономии:

//make sure these custom post types are registered for taxonomy queries add_filter('pre_get_posts', 'query_post_type'); function query_post_type($query) { if(is_category() || is_tag()) { $post_type = get_query_var('post_type'); if($post_type) $post_type = $post_type; else $post_type = array('nav_menu_item', 'venue', 'story'); // don't forget nav_menu_item to allow menus to work! $query->set('post_type',$post_type); return $query; } } 

Когда я посещаю example.com/category/foo, загорается category.php. Я бы хотел увидеть:

Страница начинается и показывает пользовательское изображение, заголовок, предложение

Название 3x предметов из «места», категория foo

Заголовок 6x предметов из «истории», категория foo

Разбиение страницы, нижний колонтитул

Вот category.php: (также по адресу: https://gist.github.com/anonymous/b747a2c51bc5bb7a58dd )

 <?php /** * The template for displaying category pages. * * Learn more: http://codex.wordpress.org/Template_Hierarchy * * @package DW Focus * @since DW Focus 1.0 */ get_header(); ?> <?php // vars $queried_object = get_queried_object(); $taxonomy = $queried_object->taxonomy; $image = get_field('category_image', $queried_object); $lead = get_field('category_lead', $queried_object); ?> <div id="primary" class="site-content category span12"> <?php if( !empty($image) ): ?> <div id="featured_image_category" style="height:200px;"> <img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" /> </div> <?php endif; ?> <div class="content-bar row-fluid"> <h1 class="page-title"><?php printf( __( '%s articles', 'dw-focus' ), '<span>' . single_cat_title( '', false ) . '</span>' ); ?></h1> </div> <?php if( !empty($lead) ): ?> <div class="lead"><p><?php echo $lead; ?></p></div> <?php endif; ?> <h2 style="text-align: center;">Luxury and Boutique Hotels in <?php printf( __( '%s', 'dw-focus' ), '<span>' . single_cat_title( '', false ) . '</span>' ); ?></h2> <?php get_template_part( 'content', 'venueloop'); ?> <div class="clearfix"></div> <h2 style="text-align: center;">Explore <?php printf( __( '%s', 'dw-focus' ), '<span>' . single_cat_title( '', false ) . '</span>' ); ?> with our unique travel experiences</h2> <?php get_template_part( 'content', 'storyloop' ); ?> <div class="clearfix"></div> <?php dw_focus_pagenavi(); ?> </div> <?php get_footer(); ?> 

Контент-часть для venueloop и цикла сюжета (также на https://gist.github.com/indietravel/38ed27762fb844eee0a5 ):

 <div class="content-inner"> <?php if ( is_category() ) { $cat = get_query_var('cat'); $ourcat = get_category ($cat); $category_selected = $ourcat->slug; } $args = array ( 'post_type' => 'story', 'post_status' => 'publish', 'posts_per_page' => '6', 'category_name' => $category_selected, ); // The Query $cat_query = new WP_Query( $args ); ?> <?php if ( $cat_query -> have_posts() ) : ?> <?php global $archive_i; $archive_i = 1 ?> <?php while ( $cat_query -> have_posts() ) : $cat_query -> the_post(); ?> <?php get_template_part('content', 'archive'); ?> <?php $archive_i; ?> <?php endwhile; ?> <?php endif; wp_reset_postdata(); // ADAPTED FOR CUSTOM POST TYPES wp_reset_query(); ?> </div> 

Контур места:

  <?php // WP_Query arguments $args = array ( 'post_type' => 'venue', 'post_status' => 'publish', 'pagination' => false, 'posts_per_page' => '3', ); // The Query $venue_query = new WP_Query( $args ); // The Loop if ( $venue_query->have_posts() ) { while ( $venue_query->have_posts() ) { $venue_query->the_post(); the_title(); } } else { // no posts found } // Restore original Post Data wp_reset_postdata(); ?> 

По какой-то причине результат заключается в том, что страница всегда показывает,

Страница начинается и показывает пользовательское изображение, заголовок, предложение

Название 3x предметов из «места проведения» и «истории» CPT, категория foo

Название 3x предметов из «места проведения» и «истории» CPT, категория foo

Разбиение страницы, нижний колонтитул

Solutions Collecting From Web of "Несколько настраиваемых циклов типа сообщения в category.php"

Решение:

 //make sure these custom post types are registered for taxonomy queries add_filter('pre_get_posts', 'query_post_type'); function query_post_type($query) { if(is_category() || is_tag()) { $post_type = get_query_var('post_type'); if($post_type) $post_type = $post_type; else $post_type = array('nav_menu_item', 'venue', 'story'); // don't forget nav_menu_item to allow menus to work! $query->set('post_type',$post_type); return $query; } } 

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

 //make sure these custom post types are registered for taxonomy queries add_filter('pre_get_posts', 'query_post_type'); function query_post_type($query) { if( is_tag() ) { $post_type = get_query_var('post_type'); if($post_type) $post_type = $post_type; else $post_type = array('nav_menu_item', 'venue', 'story'); // don't forget nav_menu_item to allow menus to work! $query->set('post_type',$post_type); return $query; } } 

И затем начали работать пользовательские запросы на странице.

Попробуй это

  <?php $args = array ( 'post_type' => array( 'nav_menu_item', 'venue', 'story' ) ); $query = new WP_Query( $args ); while ( $query->have_posts() ) : $query->the_post(); the_title(); the_content(); endwhile; wp_reset_postdata(); ?>