2016-04-08 3 views
-1

Я зарегистрировал персонализированный тип сообщений «Проекты», а также зарегистрировал пользовательскую таксономию для этого типа сообщения, называемого «Категории проектов». На моей домашней странице у меня есть div, в котором я бы хотел перечислить все проекты и термины для таксономии «Категории проектов». В настоящее время я могу только получить списки условий. Может кто-то сказать мне, почему я не могу получить условия для показа. В настоящее время у меня есть:Wordpress Custom Taxonomy на первой странице

<div class="list-container"> 
    <?php 
    query_posts(array('post_type' => 'projects')); 
    if (have_posts()) : while (have_posts()) : the_post(); 
    ?> 
    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> 
    <?php endwhile; endif; wp_reset_query(); ?> 
    <?php $taxonomy = 'project_categories'; 
    $tax_terms = get_terms($taxonomy); 
          ?> 
    <?php foreach ($tax_terms as $cat): ?> 
     <li><?php $cat; ?></li> 
    <?php endforeach; ?> 
</div><!--end list-container--> 

Другой вопрос у меня есть, это лучше включить таксономию внутри или снаружи петли query_posts?

+0

  • вы пропустили эхо здесь –

    ответ

    1

    get_terms($taxonomy) возвращает массив объектов (см. get_terms() in WP Codex), поэтому для того, чтобы напечатать имя, вы должны использовать <?php echo $cat->name ?> (и не забывайте эхо).

    Я попытался исправить ваш код. Смотрите комментарии в пределах блока кода для деталей:

    <?php 
        // keep your queries outside the loop for more readable code 
        query_posts(array('post_type' => 'projects')); 
        $taxonomy = 'project_categories'; 
        $tax_terms = get_terms($taxonomy); 
    ?> 
    
    <!-- <li> should be enclosed in <ul> or <ol> --> 
    <ul class="list-container"> 
        <?php if (have_posts()) : while (have_posts()) : the_post(); ?> 
         <li><a href="<?php echo get_the_permalink(); ?>"><?php the_title(); ?></a></li> 
        <?php endwhile; endif; ?> 
        <?php foreach ($tax_terms as $cat): ?> 
         <li><?php echo $cat->name; ?></li> 
        <?php endforeach; ?> 
    </ul><!--end list-container--> 
    
    <?php wp_reset_query(); ?> 
    

    Sidenote: Либо вы используете <?php the_permalink(); ?> или вы используете <a href="<?php echo get_the_permalink(); ?>"><?php the_title(); ?></a>. Первый будет делать все волшебство автоматически, и рекомендуется в этом случае.

    Смежные вопросы