web-dev-qa-db-fra.com

Récupère le nom de la catégorie à partir de la boucle personnalisée et y répète une fois

J'ai une page de couverture de magazine qui met à jour chaque numéro et la page de couverture montre les articles du numéro actuel qui sont collés. Ainsi, par exemple, tous les articles de ce mois-ci sont dans une catégorie intitulée "Numéro 01" et le mois prochain, je créerai le "numéro 02" qui remplacera les posts collants de "numéro 01" en première page.

J'essaie de montrer le nom de catégorie des publications extraites de la requête mais qui ne semblent pas pouvoir le faire en dehors de la boucle (je veux seulement l'afficher une fois en haut avant le début de la boucle).

Voici ma requête pour appeler les post-it et une tentative d'afficher le nom de la catégorie qui ne fonctionne pas pour moi…

<?php // Get Current Issue Articles
    $currentissueposts = array(
        'posts_per_page'      => 6,
        'post__in'            => get_option( 'sticky_posts' ),
        'ignore_sticky_posts' => 1
        );

        $currentissue = new WP_Query( $currentissueposts ); 

        if ( $currentissue->have_posts() ) : ?>
            <div class="the-header">
                <h3><?php the_category(); ?></h3>
            </div><!-- #the-header -->  
        <?php while( $currentissue->have_posts() ) : $currentissue->the_post(); ?>
                <a href="<?php the_permalink() ?>" rel="bookmark">
                <ol class="current-index-container">
                    <li class="the-title"><?php the_title(); ?></li>
                    <li class="the-author"><?php the_field('sub_head_1'); ?></li>
                    <li class="the-subtitle"><?php the_field('sub_head_2'); ?></li>
                </ol></a>
        <?php endwhile; 
        wp_reset_query();
        endif; ?>

J'ai regardé docu en termes de single_post_title et de get_the_category mais je n'arrive pas à le faire fonctionner une seule fois. Toute aide est très appréciée!

1
antonanton

Voici une idée. Notez que cela ne fonctionnera que si tous les articles sont dans la catégorie souhaitée et si tous les articles ont seulement la catégorie.

Les articles sont retournés dans un tableau auquel vous pouvez accéder via

$currentissue->posts 

En gardant cela à l’esprit, vous pouvez obtenir le premier numéro d’article suivant:

$currentissue->posts[0]->ID

Maintenant, vous pouvez ajouter cela à une variable

$id = $currentissue->posts[0]->ID    

Vous pouvez maintenant utiliser get_the_category pour récupérer la catégorie à laquelle ce message appartient. Rappelez-vous que ce sera la catégorie à laquelle tous les articles appartiennent en fonction de votre question.

Quelque chose comme ceci fonctionnerait en dehors de votre boucle, juste à l'intérieur de votre déclaration if

$category = get_the_category( $id ); 
echo $category[0]->cat_name;
2
Pieter Goosen
    <?php print get_the_category(get_the_ID())[0]->name; ?>

get_the_category () - obtient un tableau de messages contenant des informations sur les catégories`. get_the_category (get_the_ID ()) - obtient un tableau contenant des informations sur la catégorie pour un message spécifique uniquement. get_the_category (get_the_ID ()) [0] - obtient le premier résultat du tableau, qui est un objet

0
user3703490