分类法,术语,循环内部的Wordpress条件语句不起作用

时间:2012-03-10 21:53:57

标签: wordpress conditional-statements

这是我遇到的一个基本问题,但我尝试了很多不同的功能,无法使用。

在我的wordpress网站上,我创建了一个名为“文件格式”的分类

在这个分类中我创建了这些术语(我认为这些是术语?)... PDF MOV PPT 和的 DOC

见下面的截图...

enter image description here


我无法弄清楚的问题是,我有一个简单的WP_Query循环,见下文......


<?php   
    $downloads  = new WP_Query(array(
        'post_type'         => 'downloads',
        'order'             => 'ASC',
        'posts_per_page'    => -1
)); ?>

<?php if ($downloads->have_posts()) : ?>

    <?php while ($downloads->have_posts()) : $downloads->the_post(); ?>

        <!-- This is where my conditional statement will go, see below -->

    <?php endwhile; ?>

<?php unset($downloads); endif; wp_reset_query(); ?>


...在这个循环中,我想有条件地显示一个图标,具体取决于分配给该帖子的术语。

例如,如果帖子已被指定为“PDF”字词,那么我希望显示我的PDF图标图像等。

请参阅下面的条件语句PHP,它位于上面的循环中。但我无法弄清楚为什么最后一个条件总是得到回应。救命啊!


<?php
    if (term_exists(array(
        'term_id'           => 4,
        'term_taxonomy'     => 'file-formats'
    ))) {
        echo '<img src="' . content_url( '/themes/mytheme/' ) . 'images/icons/pdf.png" alt="" class="file-format-icon">' ;
    }
    else if (term_exists(array(
        'term_id'           => 6,
        'term_taxonomy'     => 'file-formats'
    ))) {
        echo '<img src="' . content_url( '/themes/mytheme/' ) . 'images/icons/ppt.png" alt="" class="file-format-icon">'    
    }
    else if (term_exists(array(
        'term_id'           => 5,
        'term_taxonomy'     => 'file-formats'
    ))) {
        echo '<img src="' . content_url( '/themes/mytheme/' ) . 'images/icons/mov.png" alt="" class="file-format-icon">' ;  
    }
    else {
        echo 'nothing' ;
    }
?>


我也试过这个......


<?php
    if (is_tax('file-formats','pdf')) {
        echo '<img src="' . content_url( '/themes/mytheme/' ) . 'images/icons/pdf.png" alt="" class="file-format-icon">' ;  
    }
    else if (is_tax('file-formats','ppt')) {
        echo '<img src="' . content_url( '/themes/mytheme/' ) . 'images/icons/ppt.png" alt="" class="file-format-icon">' ;  
    }
    else if (is_tax('file-formats','mov')) {
        echo '<img src="' . content_url( '/themes/mytheme/' ) . 'images/icons/mov.png" alt="" class="file-format-icon">' ;  
    }
    else {
        echo 'nothing' ;
    }   
?>


这......


<?php
    if (is_object_in_taxonomy( 'pdf', 'file-formats' )) {
        echo '<img src="' . content_url( '/themes/mytheme/' ) . 'images/icons/pdf.png" alt="" class="file-format-icon">' ;
    }
    else if (is_object_in_taxonomy( 'ppt', 'file-formats' )) {
        echo '<img src="' . content_url( '/themes/mytheme/' ) . 'images/icons/ppt.png" alt="" class="file-format-icon">' ;  
    }
    else if (is_object_in_taxonomy( 'mov', 'file-formats' )) {
        echo '<img src="' . content_url( '/themes/mytheme/' ) . 'images/icons/mov.png" alt="" class="file-format-icon">' ;
    }
    else {
        echo 'nothing' ;
    }
?>


任何帮助都会令人惊讶,因为当这是一个非常基本的东西时,这似乎很难。

提前致谢。



1 个答案:

答案 0 :(得分:0)

我认为term_exists()会让你失望;通常,检查给定的分类法是否包含 x 术语。如果您想要与给定帖子关联的术语,请使用get_the_terms(),它返回一个数组。然后,您的代码可以检查该数组以决定插入哪个图像。