2016-02-22 3 views
0

Я в настоящее время строит Wordpress сайт и я встречая некоторые трудности со следующим ..Как отображать текущие сообщения пользовательского имени таксономии внутри цикла wordpress?

Я пытаюсь динамически добавить класс в HTML-элемент, отображая имя пользовательской таксономии текущего типа пост, чтобы использовать как имя класса. Все это делается в цикле Foreach.

Мой код выглядит следующим образом

<?php 
 
$args = array('posts_per_page' => -1, 'post_type' => 'staff', 'orderby' => 'menu_order', 
 
    'order' => 'DESC'); 
 
$myposts = get_posts($args); 
 
foreach ($myposts as $post) : setup_postdata($post); ?> 
 

 
<?php $terms = wp_get_post_terms($post_ID, 'department'); ?> 
 
<?php global $post; $terms = wp_get_post_terms($post->ID, 'department'); ?> 
 

 
<div class="grid-item <?php echo $term->slug; ?> "> 
 
<div class="staff-box"> 
 
    <?php the_post_thumbnail('staff-member'); ?> 
 
    <a href="<?php echo the_permalink(); ?>"> 
 
     <p class="staff-title"><?php the_title(); ?></p> 
 
     <p class="staff-job-title"><?php the_field('staff-job-title'); ?></p> 
 
    </a> 
 
</div> 
 
</div> 
 

 
<?php endforeach; 
 
wp_reset_postdata();?>

Это работает с использованием слизняка; ?>, чтобы отобразить имя класса, но он отображает только «ветеринарных хирургов» по ​​каждому названию класса, когда он должен отображать соответствующий отдел по каждому предмету ...

Надеюсь, что имеет смысл.

Большое спасибо.

ответ

1

Для тех, кто заинтересован я сейчас решил эту проблему с помощью:

<?php $term_list = wp_get_post_terms($post->ID, 'department', array("fields" => "all")); ?>

и с помощью

<?php echo $term_list[0]->slug ; ?>

в качестве имени класса.

Благодаря

0

Вы можете решить эту проблему с помощью этого кода также, Поместите этот код в то время как цикл, «portfolio_category» является имя пользовательской таксономии

$terms = get_the_terms($post->ID, 'portfolio_category'); 

          if ($terms && ! is_wp_error($terms)) : 
           $links = array(); 
           foreach ($terms as $term) { 
            $links[] = $term->name; 
           } 
           $tax_links = join(" ", str_replace(' ', '-', $links));   
           $tax = strtolower($tax_links); 
          else : 
          $tax = '';     
          endif; 
Смежные вопросы