2016-07-18 41 views
0

Ich habe in den letzten Stunden im Kreis herum und herum gegangen versuchen, die folgenden Funktionen an die Arbeit:Benutzerdefinierte Post Typ Kategorie Filter Wordpress

Ich habe einen benutzerdefinierten Post-Typ team und eine benutzerdefinierte Taxonomie team-tax.

Ich möchte eine Reihe von Schaltflächen an der Spitze, die die Filter darstellen werden. Diese benötigen ein "Datenfilter" -Attribut, das auf "Teamsteuer" gesetzt ist. Dieses Bit scheint zu funktionieren.


Unterhalb dieser Filter habe ich eine Galerie und jedes Element zeigen, sollte die team-tax, die es als Klassennamen gehört - Dies ist, wo ich bin zu kämpfen, da es nichts zurückliefert.

Vielen Dank für Ihre Suche. Hier

ist der Code, den ich im Moment habe:

<div class="clearfix"> 

<button class="filter" data-filter="all">All</button> 

<?php $args=array('orderby' => 'name','taxonomy'=>'team-tax'); 
    $filters=get_categories($args); 
    foreach($filters as $filter){ ?> 
    <button class="filter" data-filter="<?php echo $filter->gallery_nicename; ?>"><?php echo $filter->name; ?></button> 
<?php } ?> 



<?php 
$args = array(
'posts_per_page' => -1, 
'post_type' => 'team', 
'orderby' => 'menu_order', 
'order' => 'ASC', 
'taxonomy' => 'team-tax' 
); 
    $query = new WP_Query($args);?> 

    <button class="sort" data-sort="my-order:asc">Ascending Order</button> 
    <button class="sort" data-sort="my-order:desc">Descending Order</button> 

    <?php if (have_posts()) : while (have_posts()) : the_post(); ?> 

     <div class="gallery gallery-border gallery-mixitup">    

      <div class="gallery-item mix <?php foreach((get_the_category()) as $category) { echo $category->cat_name . ' '; } ?>" data-my-order="1"> 

      <a href="<?php echo get_permalink($post->ID); ?>"> 
       <img src="<?php bloginfo('template_directory'); ?>/dist/images/slider/yachts.jpg"> 
      <div class="overlay"></div> 
      <div class="gallery-item-text">Lorem Ipsum Dolor</div> 
      </a> 
      </div> 

     </div> 
    <?php endwhile; else: ?> 
<p>There is nothing to see here</p> 
<?php endif; ?> 
</div> 

Antwort

0

Ich denke, dass das Problem mit der Art und Weise sein, die Sie versuchen, get_the_category() zu verwenden. Meine Empfehlung wäre wp_get_post_terms() zu verwenden.

See:

<div class="gallery-item mix <?php foreach((get_the_category()) as $category) { echo $category->cat_name . ' '; } ?>" data-my-order="1"> 

Mit etwas wie folgt:

<div class="gallery-item mix <?php foreach((wp_get_post_terms(get_the_ID(), 'team-tax')) as $category) { echo $category->slug . ' '; } ?>" data-my-order="1"> 
https://codex.wordpress.org/Function_Reference/wp_get_post_terms

Kurz In diese Zeile ersetzen könnte