2016-04-08 9 views
-1

Ich habe einen benutzerdefinierten Beitragstyp "Projekte" registriert und auch eine benutzerdefinierte Taxonomie für diesen Posttyp namens "Projektkategorien" registriert. Auf meiner Homepage habe ich ein div, in dem ich alle Projekte und Begriffe für die Taxonomie "Projektkategorien" auflisten möchte. Momentan kann ich nur die Listen der Begriffe abrufen. Kann mir jemand sagen, warum ich die Begriffe nicht anzeigen kann? Derzeit habe ich:Wordpress Custom Taxonomy auf der ersten Seite

<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--> 

Eine andere Frage, die ich habe, ist, ist es besser, die Taxonomien innerhalb oder außerhalb der query_posts Schleife schließen?

+0

  • du hast Echo hier verpasst –

    Antwort

    1

    get_terms($taxonomy) gibt ein Array von Objekten zurück (siehe get_terms() in WP Codex). Um den Namen zu drucken, sollten Sie <?php echo $cat->name ?> verwenden (und das Echo nicht vergessen).

    Ich habe versucht, Ihren Code zu korrigieren. Siehe Kommentare in den Codeblock für Details:

    <?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(); ?> 
    

    Nebenbei bemerkt: Entweder Sie verwenden <?php the_permalink(); ?> oder Sie verwenden <a href="<?php echo get_the_permalink(); ?>"><?php the_title(); ?></a>. Ersteres wird automatisch die Magie übernehmen und wird in diesem Fall empfohlen.

    Verwandte Themen