カスタム投稿タイプ(Match)とカスタム分類(Team)の両方を作成し、チーム分類を通常の投稿(そのチームのニュース)とMatchカスタム投稿タイプで使用できるようにしました。
しかし、私はtaxonomy-team.phpを作成したArchiveテンプレートページでは、投稿はNewsセクションとMatchセクションに分かれていません。
私はさまざまな解決策を試してみましたが、どちらも現在同じコンテンツ(チームのすべての投稿とすべての試合)を表示しています。
私はこことさまざまなチュートリアルサイトで答えを読むことから試みた2つの方法を示すために2番目のセクション "Matches"を復活させました。
<?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(); ?>
アーカイブページを分割して各チームのニュースと試合を別々に表示するにはどうすればよいですか。
記憶から行くこれは記事のために働くべきです
<?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) ); ?>
2番目のクエリは、[TEAMNAME]のカスタム分類法との一致のみを返します。