显示自定义帖子类型的分类

时间:2015-03-31 10:42:31

标签: php wordpress content-management-system custom-post-type custom-taxonomy

我目前有一个自定义帖子类型的“产品”。

custom post type currently.

如您所见,我现在有外部和内部产品,这是由此代码创建的:

    add_action( 'init', 'create_product__cat_external' );
function create_product__cat_external() {
    register_taxonomy(
        'ExternalProducts',
        'products',
        array(
            'label' => __( 'External Products' ),
            'rewrite' => array( 'slug' => 'externalproducts' ),
            'hierarchical' => true,
        )
    );
}
add_action( 'init', 'create_product__cat_internal' );

function create_product__cat_internal() {
    register_taxonomy(
        'InternalProducts',
        'products',
        array(
            'label' => __( 'Internal Products' ),
            'rewrite' => array( 'slug' => 'internalproducts' ),
            'hierarchical' => true,
        )
    );
}

我想要实现的目标是一个只能显示外部产品内部类别的页面。

我有这段代码,它显示BOTH external和Internal:

<?php
              $customPostTaxonomies = get_object_taxonomies('products');

              if(count($customPostTaxonomies) > 0)
              {
                   foreach($customPostTaxonomies as $tax)
                   {
                         $args = array(
                            'orderby' => 'name',
                            'show_count' => 0,
                            'pad_counts' => 0,
                            'hierarchical' => 1,
                            'taxonomy' => $tax,
                            'title_li' => ''
                            );

                         wp_list_categories( $args );
                   }
             }
             ?>

任何帮助都会很棒。 欢呼声。

更新:

我目前有类别的名称和说明输出,但链接没有链接显示此类别中的帖子。

以下代码:

<?php
             $taxonomy = 'ExternalProducts';
             $queried_term = get_query_var($taxonomy);
             $terms = get_terms($taxonomy, 'slug='.$queried_term);
             if ($terms) {
              echo '<ul>';
              foreach($terms as $term) {
   // The $term is an object, so we don't need to specify the $taxonomy.
                $term_link = get_term_link( $term );

// If there was an error, continue to the next term.
                if ( is_wp_error( $term_link ) ) {
                  continue;
            }

// We successfully got a link. Print it out.
            echo '<li><a href="' . esc_url( $term_link ) . '">' . $term->name . '</a></li>';
            echo $term->description;
      }
      echo '</ul>';
}
?>

1 个答案:

答案 0 :(得分:0)

你需要使用功能&#34; get_terms&#34;。这是简短的代码。 假设您的分类名称= custom_taxonomy

$catlsit = get_terms('custom_taxonomy', array( 'orderby' => 'count', 'hide_empty' => 0 ) ); print_r($catlsit); 您将获得在分类法中创建的类别列表:custom_taxonomy。 如果您还需要其他,请写下来。 谢谢,