web-dev-qa-db-ja.com

カスタムループからカテゴリ名を取得して一度エコーします

私はすべての問題で更新する雑誌のフロントページを持っています、そしてフロントページは付箋されている現在の問題の投稿を示しています。たとえば、今月はすべての投稿が「Issue 01」というタイトルのカテゴリに入り、翌月にはフロントページの「issue 01」の付箋投稿に代わる「issue 02」を作成します。

私はクエリで引き出された投稿のカテゴリ名を表示しようとしていますが、ループの外側でこれを行うことができないようです(私はループが始まる前に一度だけそれを表示したいです)。

これは私のためにスティッキーポストを呼び出すためのクエリとカテゴリ名を表示しようとする試みです…

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

Single_post_titleとget_the_categoryの観点からドキュメントを調べましたが、それが一度だけ機能するようには思えません。任意の助けは大歓迎です!

1
antonanton

これがアイデアです。注:これは、すべての投稿が目的のカテゴリに属し、すべての投稿がカテゴリのみの場合にのみ機能します。

投稿はあなたがアクセスできる配列で返されます

$currentissue->posts 

これを念頭に置いて、次のように最初の投稿IDを取得できます。

$currentissue->posts[0]->ID

今、あなたはそれを変数に追加することができます

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

この投稿が属するカテゴリを取得するために get_the_category を使用できます。覚えておいて、これはあなたの質問によればすべての投稿が属するカテゴリになるでしょう

このような何かはあなたの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() - カテゴリに関する情報を含む投稿の配列を取得します。 get_the_category(get_the_ID()) - 特定の投稿のカテゴリに関する情報のみを含む配列を取得します。 get_the_category(get_the_ID())[0] - オブジェクトである配列から最初の結果を取得する

0
user3703490