WordPress условные заявления для таксономии, термин, внутри цикла не работает - PullRequest
0 голосов
/ 11 марта 2012

Это такая базовая проблема, с которой я столкнулся, но я пробовал так много разных функций и не могу заставить их работать.

На моем сайте WordPress я создал таксономию под названием ' file-format '

и в этой таксономии я создал эти термины (я думаю, что это термины?) ... 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 голосов
/ 11 марта 2012

Я думаю, что term_exists () сбивает вас с толку;который проверяет, содержит ли данная таксономия термин x , как правило.Если вам нужны термины, связанные с данным постом, используйте get_the_terms () , который возвращает массивЗатем ваш код может проверить этот массив, чтобы решить, какое изображение вставить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...