web-dev-qa-db-fra.com

Afficher tous les articles de la catégorie principale et 1 sous-catégorie

J'ai défini un type de publication personnalisé pour la création de galeries à l'aide de la fonctionnalité de galerie intégrée WP.

register_post_type( 'my_gallery',
    array(
        'labels' => array(
            'name' => __( 'Gallery', 'my-child-theme' ),
            'singular_name' => __( 'Gallery', 'my-child-theme' )
        ),
        'public' => true,
        'supports' => array( 'title', 'editor', 'custom-fields', 'thumbnail' )
    )
);

Également créé une taxonomie personnalisée pour ce CPT spécifique, avec une catégorie principale 'Galeries' et une sous-catégorie 'Historique':

-Galleries
    -History

J'ai aussi un modèle dans le thème enfant appelé taxonomy-galleries.php qui fonctionne comme il se doit, il affiche tous les messages dans les galeries, ainsi que dans l'histoire.

Maintenant, voici ce que je veux: Afficher tous les articles de la catégorie principale et afficher l’historique des sous-catégories, paginé avec un maximum de 12 éléments.

Comment je ferais ça?

Editez sur la base de @mmm -s pour savoir comment obtenir tous les éléments d'un tableau:

    $all_the_items = array();
    while ( have_posts() ) : the_post();
          $t = get_the_terms( $post->ID , 'my-taxonomy' );
                if ($t[0]->parent == 0){
                $properties = array(
                    'title' => get_the_title(),
                    'link' => get_the_permalink() );
                 $all_the_items[] = $properties;
}
endwhile; wp_reset_query();
    $o = get_queried_object();
            $children = get_term_children($o->term_id, $o->taxonomy);
            foreach ($children as $child) {
                $this_term = get_term($child);
                $properties = array(
                    'title' => $this_term->name,
    'link' => site_url('/' . $this_term->taxonomy . '/' . $this_term->slug . '/')
                );
    }
1
D. Dan

pour obtenir les enfants de l'objet interrogé, vous pouvez utiliser ce code dans le fichier taxonomy-galleries.php

$o = get_queried_object();
$children = get_term_children($o->term_id, $o->taxonomy);

$children est un tableau d'identifiants de termes, il vous suffit de passer en boucle.

1
mmm