foreach循环中的get_the_terms问题

时间:2014-06-26 16:28:50

标签: php wordpress foreach

我想在帖子中显示分类名称。我使用foreach循环,但它没有向我显示任何东西。

这是我的代码。

<?php

    global $post;
        $foo_home_url = site_url();

        $url = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];

        if(strpos($url, 'foo_cat')){
            $foo_bc_cat = get_the_terms( $post->ID , FOO_POST_TAXONOMY );
    ?>
            <ul>
                <li><a href="<?php echo $foo_home_url; ?>">Home</a></li>
    <?php
                    foreach($foo_bc_cat as $foo_tax_cat){
    ?>
                    <li><a href="<?php echo get_term_link($foo_tax_cat->slug, FOO_POST_TAXONOMY) ?>"><?php echo $foo_tax_cat->name ?></a></li>
    <?php
                    }
    ?>
            </ul>
    <?php
        }
    ?>

任何想法。

1 个答案:

答案 0 :(得分:1)

使用此代码

<?php
global $post;
    $foo_home_url = site_url();

    $url = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];

    if(strpos($url, 'foo_cat')){
        $foo_bc_name = get_queried_object()->name;
?>
        <ul>
            <li><a href="<?php echo $foo_home_url; ?>">Home</a></li>
                <li><a href="<?php echo get_term_link($foo_tax_cat->slug, FOO_POST_TAXONOMY) ?>"><?php echo $foo_bc_name; ?></a></li>
        </ul>
<?php
    }
?>

而不是此代码

<?php

    global $post;
        $foo_home_url = site_url();

        $url = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];

        if(strpos($url, 'foo_cat')){
            $foo_bc_cat = get_the_terms( $post->ID , FOO_POST_TAXONOMY );
    ?>
            <ul>
                <li><a href="<?php echo $foo_home_url; ?>">Home</a></li>
    <?php
                    foreach($foo_bc_cat as $foo_tax_cat){
    ?>
                    <li><a href="<?php echo get_term_link($foo_tax_cat->slug, FOO_POST_TAXONOMY) ?>"><?php echo $foo_tax_cat->name ?></a></li>
    <?php
                    }
    ?>
            </ul>
    <?php
        }
    ?>