wake-up-neo.net

Kategoriearchiv, Liste Unterkategorien jedes Beitrags

Ich habe diesen Beitrag gefunden, aber er wurde nie beantwortet. Ich bin auf der Suche nach der gleichen Sache und habe bisher noch keine Lösung gefunden.

Mein Problem ist, dass ich keine Möglichkeit finde, Unterkategorien auf einer Kategoriearchivseite aufzulisten, die für jeden Beitrag eindeutig sind. Mein Markup ist derzeit das:

<article <?php post_class( 'grid_item' ); ?>>
  <div class="grid_item--inner">
    <?php the_post_thumbnail(); ?>
    <header>
      <a class="cat_card--link" href="<?php the_permalink(); ?>">
        <h2 class="cat_card--title"><?php the_title(); ?></h2>
        <?php get_template_part('templates/entry-meta'); ?>
      </a>
    </header>
    <div class="cat_card--cats">
      <?php wp_list_categories('title_li=&style=none'); ?>
    </div>
  </div>
</article>

Dies listet natürlich alle Unterkategorien der Kategorie der aktuellen Seite auf. Ich habe in der WP Codex-Dokumentation nicht die Möglichkeit gefunden, nur die zutreffenden Unterkategorien der einzelnen Posts aufzulisten. Ist das möglich? Wenn ja, wie erreiche ich das?

BEARBEITEN: Zur Verdeutlichung möchte ich jede Unterkategorie folgendermaßen auflisten:

Parent Category: "Video"
  - Post 1: Subcategory "Comedy"
  - Post 2: Subcategory "Action"
  - Post 3: Subcategories "Comedy, Action"

In jedem Beitrag werden nur die von ihm verwendeten Unterkategorien aufgelistet.

2
88 MPG

Wenn Sie nur untergeordnete Kategorien der aktuellen Kategorie auflisten möchten, setzen Sie das Argument child_of auf die aktuelle Kategorie-ID.

wp_list_categories(
    array(
        'child_of' => get_queried_object_id(), // this will be ID of current category in a category archive
        'style' => 'none',
        'title_li' => ''
    )
);

BEARBEITEN - Um nur untergeordnete Kategorien pro Beitrag der aktuellen Kategorie aufzulisten, müssen Sie die Liste der Begriffe jedes Beitrags filtern, um zu überprüfen, ob parent die aktuelle Kategorie-ID ist.

$terms = get_the_terms( get_the_ID(), 'category' );

if( $terms && ! is_wp_error( $terms ) ){
    echo '<ul>';
    foreach( $terms as $term ) {
        if( get_queried_object_id() == $term->parent ){
            echo '<li><a href="' . get_term_link( $term ) . '">' . $term->name . '</a></li>';
        }
    }
    echo '</ul>';
}
3
Milo