在帖子中显示当前分类插件

时间:2016-08-04 作者:Filip

我正在寻找一种在帖子中显示当前分类法slug的方法。

经过编辑使其更清晰,这里有一个更准确的例子。

我有CPT活动。我有200多篇关于活动的文章帖子,我想把它们分为不同的领域(分类法)和不同类型的活动。为了更具体,下面是我的示例:

Activities (Custom Post Type)
 - running (Taxonomy)
 - watersports (Taxonomy)
   - swimming (Term)
     - article post about swimming 1 (Post)
     - article post about swimming 2 (Post)
     - article post about swimming 3 (Post)
     - article post about swimming 4 (Post)
   - diving (Term)
   - boating (Term)
   - Kiteboating (Term)
 - materials arts (Taxonomy)
 - teamsports (Taxonomy)
如果我在这些帖子中(关于游泳的帖子),我想在文章中显示当前的分类法(水上运动)。

我找到了一种显示当前术语(术语1)的方法,但不幸的是,我需要在帖子中显示主动分类法slug的slug。这种分类法的最后一个要点是,在水上运动旁边显示更多活动的列表。我会这样尝试:

   <h4>More activities beside "watersport":</h4>
    <?php 
    $taxonomy     = \'HERE THE SLUG OF CURRENT TAXONOMY\';
    $orderby      = \'name\'; 
    $show_count   = 0;  
    $pad_counts   = 0;    
    $hierarchical = 1;    
    $title        = \'\';

    $args = array(
      \'taxonomy\'     => $taxonomy,
      \'orderby\'      => $orderby,
      \'show_count\'   => $show_count,
      \'pad_counts\'   => $pad_counts,
      \'hierarchical\' => $hierarchical,
      \'title_li\'     => $title
    );
    ?>
    <ul>
    <?php wp_list_categories( $args ); ?>
    </ul>
谢谢你的帮助!

2 个回复
最合适的回答,由SO网友:Andy Macaulay-Brook 整理而成

没有一个将post映射到单个分类法的概念,因此这是行不通的。

分类学是指颜色和大小之类的东西,包括紫丁香、天青、栗色、小、中、大等术语。

因此,你的问题有点像要求在帖子上显示“颜色”,而真正的映射很可能是蓝色,中等大小。

你能在你的例子中加上一些真名吗?如果我们能看到您使用的是什么数据,那么我们可能会建议一种适合您的结构。

编辑:根据OP提供的更清晰信息扩展答案。

你对分类法、术语和帖子的结构有点误解。分类法包含一组术语,这些术语类似于应用于帖子的标签。你的帖子不像文件夹中的文件那样位于分类法和术语中,而是术语标记帖子。分类法中的术语可以是分层的,我认为这就是您需要的。

创建一种称为“活动类型”的分类法使其层次化,以便可以添加如下嵌套术语:

 - running (Term)
 - watersports (Term)
   - swimming (Term)
   - diving (Term)
   - boating (Term)
   - Kiteboating (Term)
 - materials arts (Term)
 - teamsports (Term)
然后,您希望显示顶级术语的名称,而不是尝试显示分类法的名称。您可以使用以下方法获得顶级术语的列表:

$args = array(
    \'taxonomy\' => \'activity_type\',
    \'parent\' => 0,
    \'hide_empty\' => false           
);
$terms = get_terms( $args );
您可以获得适用于当前帖子的所有顶级术语,如下所示:

$args = array(
    \'parent\' => 0,          
);  
$terms = wp_get_object_terms( $postID, \'activity_type\', $args );

SO网友:Filip

谢谢你的回答。当然,为了让它更清楚,这里有一个更准确的例子。

我有CPT活动。我有200多篇关于活动的文章帖子,我想把它们分为不同的领域(分类法)和不同类型的活动。为了更具体,下面是我的示例:

Activities (Custom Post Type)
 - running (Taxonomy)
 - watersports (Taxonomy)
   - swimming (Term)
     - article post about swimming 1 (Post)
     - article post about swimming 2 (Post)
     - article post about swimming 3 (Post)
     - article post about swimming 4 (Post)
   - diving (Term)
   - boating (Term)
   - Kiteboating (Term)
 - materials arts (Taxonomy)
 - teamsports (Taxonomy)
如果我在这些帖子中(关于游泳的帖子),我想在文章中显示当前的分类法(水上运动)。

这种分类法的最后一个要点是,在水上运动旁边显示更多活动的列表。我会这样尝试:

   <h4>More activities beside "watersport":</h4>
    <?php 
    $taxonomy     = \'HERE THE SLUG OF CURRENT TAXONOMY\';
    $orderby      = \'name\'; 
    $show_count   = 0;  
    $pad_counts   = 0;    
    $hierarchical = 1;    
    $title        = \'\';

    $args = array(
      \'taxonomy\'     => $taxonomy,
      \'orderby\'      => $orderby,
      \'show_count\'   => $show_count,
      \'pad_counts\'   => $pad_counts,
      \'hierarchical\' => $hierarchical,
      \'title_li\'     => $title
    );
    ?>
    <ul>
    <?php wp_list_categories( $args ); ?>
    </ul>
谢谢你的帮助!

相关推荐

ACF Taxonomy in Loop

你好吗我的问题是,我在头版上显示了一些卡片,例如名称和描述,这些信息来自我的分类法event,因为我用ACF创建了一些字段,我想在卡片中打印它们,但我不知道怎么做。下面是我如何打印卡片的代码 <?php if(is_front_page()): $terms = get_terms( [ \'taxonomy\' => \'evento\', \'hide_empty\' =>