在循环(global?)外回显get_the_ategory()

时间:2016-07-07 作者:Alexander Graham

试图抓住get_the_category() 在循环中,并张贴到标题中的署名。

// file1.php
<div>
    <h1><?php the_title(); ?></h2>
    <?php echo $list_categories ; // THIS DOES NOT WORK ?>
</div>

// file2.php
<article>
    <?php
        if ( have_posts() ) : while ( have_posts() ) : the_post();
            $category_array = wp_get_post_categories($post->ID);
            $category_list = array();
            foreach ( $category_array as $categories ) {
                $category_list[] = get_cat_name( $categories );
            }
            $lister = implode(\' • \', $category_list);
            $list_categories = $lister;

            echo $list_categories; // THIS WORKS

        endwhile; endif;
    ?>
</article>
我错过了什么?它在文件1上没有回音。php。

谢谢

1 个回复
最合适的回答,由SO网友:Alexander Graham 整理而成

我意识到the_title(); 可以在文件1中进行分析。php在循环之外,那么为什么类别和ID不能?下面解决了我的问题。

// file1.php
<div>
    <h1><?php the_title(); ?></h2>
    <?php
        $category_array = wp_get_post_categories($post->ID);
        $category_list = array();
        foreach ( $category_array as $categories ) {
            $category_list[] = get_cat_name( $categories );
        }
        $lister = implode(\' • \', $category_list);
        $list_categories = $lister;
        echo $lister ;
    ?>
</div>

// file2.php
<article>
    <?php
        if ( have_posts() ) : while ( have_posts() ) : the_post();
            the_content();
        endwhile; endif;
    ?>
</article>
或者,要传递类别链接,可以使用以下内容(警告,下面的变量已更改):

<ul>
    <?php
        // get post categories
        $cats = wp_get_post_categories($post->ID);
        foreach ( $cats as $category ) {
            echo "<li>";
            $current_cat = get_cat_name($category);
            $cat_link = get_category_link($category);
            echo "<a href=\'$cat_link\'>";
            echo $current_cat;
            echo "</a>";
            echo "</li>";
        }
    ?>
</ul>