自定义帖子类型类别过滤WordPress

时间:2016-07-18 21:21:02

标签: wordpress categories taxonomy

过去几个小时,我一直围着圈子试图让以下功能发挥作用:

我有自定义帖子类型team和自定义分类team-tax

我想在顶部有一排按钮代表过滤器。这些需要将“数据过滤器”属性设置为“团队税” - 这一点似乎有效。

在这些过滤器下面,我有一个图库,每个项目都应该显示它所属的team-tax作为类名 - 这是我在努力的地方,因为它不会返回任何内容。

非常感谢您的光临。

以下是我目前的代码:

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

1 个答案:

答案 0 :(得分:0)

我认为您的问题可能与您尝试使用get_the_category()的方式有关。我的建议是使用wp_get_post_terms()

请参阅:https://codex.wordpress.org/Function_Reference/wp_get_post_terms

简而言之,你可以替换这一行:

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

有这样的事情:

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