it-swarm.com.ru

Отдельные сообщения и пользовательский тип сообщения в шаблоне архива пользовательской таксономии

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

Однако на странице шаблона архива я создал таксономию-team.php, посты не разделяются на раздел новостей и раздел совпадений.

Я пробовал разные решения, но оба в настоящее время показывают одинаковый контент - все сообщения и все совпадения для Команды.

Я восстановил второй раздел "Совпадения", чтобы показать два способа, которыми я пытался читать ответы здесь и на различных учебных сайтах.

<?php
/**
 * The template for displaying Archive pages.
 *
 * Learn more: http://codex.wordpress.org/Template_Hierarchy
 *
 * @package aThemes
 */

get_header(); ?>

    <section id="primary" class="content-area">
        <div id="content" class="site-content" role="main">

<?php
    // This sets out a variable called $term - we'll use it ALOT for what we're about to do.
     $term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) ); ?>

<!-- See how we used the variable to let Wordpress know we want to display the title of the taxonomy? -->
    <div id="matchheader"><?php echo $term->name; ?></div>

<!-- Using the same variable, we can use it to display the posts that the artist has been tagged in -->
    <h2><?php echo $term->name; ?> News</h2>
    <ul class="newslist">
<?php $args = array(
    'post_type'                => 'match',
    'child_of'                 => 0,
    'parent'                   => '',
    'orderby'                  => 'name',
    'order'                    => 'ASC',
    'hide_empty'               => 1,
    'hierarchical'             => 1,
    'exclude'                  => '',
    'include'                  => '',
    'number'                   => '',
    'taxonomy'                 => 'team',
    'pad_counts'               => false 

    ); 
$categories = get_categories( $args );
foreach ( $categories as $cat ) {

$posts_array = get_posts(
    array(
        'posts_per_page' => -1,
        'post_type' => 'match',
        'tax_query' => array(
            array(
                'taxonomy' => 'team',
                'field' => 'term_id',
                'terms' => $cat->term_id,
            )
        )
    )
); }
?>
<?php while (have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a> -  <?php the_time('d M Y'); ?></li>
    <?php endwhile; ?>
    <?php wp_reset_query(); ?>
    </ul>

    <h2><?php echo $term->name; ?> Matches</h2>
    <ul class="matchlist">
    <?php while (have_posts()) : the_post(); ?>       
                <li><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a> -  <?php the_time('d M Y'); ?></li>
    <?php endwhile; ?>
    </ul>

            </div><!-- #content -->
    </section><!-- #primary -->

<?php get_sidebar(); ?>
<?php get_footer(); ?>    

Как я могу разделить страницы архива, чтобы они отображали новости и матчи для каждой команды отдельно?

2
Ronan

Исходя из памяти это должно работать для сообщений

<?php $query1 = new WP_Query( array( "post_type" => "post", "tag" =>
$term->slug) ); ?>

Первый запрос вернет только сообщения, которые были помечены [TEAMNAME] (насколько я помню, пользовательские таксономии могут отображаться как теги в сообщении). Это должно работать для команд

<?php $query2 = new WP_Query( array( "post_type" => "match", "team" => $term->slug) ); ?>

Второй запрос возвращает только совпадения с пользовательской таксономией [TEAMNAME]

2
Howli