web-dev-qa-db-fra.com

Messages séparés et type de message personnalisé dans le modèle d'archive Taxonomie personnalisée

J'ai créé à la fois un type de publication personnalisé (correspondance) et une taxonomie personnalisée (équipe) et j'ai rendu la taxonomie d'équipe disponible pour les publications normales (actualités de cette équipe) et le type de publication personnalisée Match.

Cependant, sur la page de modèle d’archive que j’ai créée, taxonomy-team.php, les publications ne se séparent pas entre une section News et une section Match.

J'ai essayé diverses solutions, mais les deux affichent actuellement le même contenu - tous les messages et tous les matchs de l'équipe.

J'ai restauré la deuxième section "Correspondances" pour montrer les deux manières que j'ai essayées en lisant les réponses ici et sur divers sites de didacticiels.

<?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(); ?>    

Comment puis-je séparer les pages d'archives pour qu'elles affichent séparément les nouvelles et les matchs de chaque équipe?

2
Ronan

En partant de la mémoire cela devrait marcher pour les posts

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

La première requête ne renverra que les publications étiquetées [TEAMNAME] (autant que je puisse m'en souvenir, les taxonomies personnalisées peuvent apparaître sous forme de balises sur une publication). Cela devrait fonctionner pour les équipes

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

La deuxième requête ne renverra que les correspondances avec la taxonomie personnalisée de [TEAMNAME]

2
Howli