【问题标题】:Make a custom taxonomy child of another custom taxonomy将自定义分类作为另一个自定义分类的子级
【发布时间】:2019-05-29 08:56:18
【问题描述】:

对于我目前正在开发的 Wordpress 插件(支持票证系统),我必须映射以下内容。
每个票证都分配给一个项目(1:1 关系)。
每个项目依次分配给客户(1:1 关系)。
因此,可以为客户分配任意数量的项目(1:n 关系)。
此外,一张票可能有多个答案(如这个问题),我认为应该也是一个 cpt。

我已经将工单创建为自定义帖子类型。
我认为客户和项目应该是工单的分类法。
项目应该分配给客户作为父分类法。
因此,我为项目设置了 hierarchy = true。
但实际上项目将显示在父下拉列表中,而不是客户(见下面的屏幕截图)。
据我所知在 Codex 中,我可以使用“taxonomy_parent_dropdown_args”-hook 自定义下拉菜单。
但我不确定是否会因不同的蛞蝓而出现问题。
这是正确的还是有更好的方法来归档它?

【问题讨论】:

  • 一个分类不能是另一个分类的子分类。只有分类术语可以用作子项。
  • 我尝试通过钩子更改下拉列表,这很有效。但保存术语后,表格中不再包含内容行,因此您无法再更改术语。只有号码仍然可用且正确。因此,我的问题已经澄清了子术语是否必须与父术语属于相同的分类。也许我可以将关系保存为 Term Meta。那么这两种分类法都必须成为非分层的。

标签: php wordpress custom-post-type custom-taxonomy


【解决方案1】:

试试看

                $taxonomyName = "com_category";
                $parent_terms = get_terms($taxonomyName, array('parent' => 0, 'orderby' => 'slug', 'hide_empty' => false));   

                foreach ($parent_terms as $pterm) {
                    $terms = get_terms($taxonomyName, array('parent' => $pterm->term_id, 'orderby' => 'slug', 'hide_empty' => false));
                    foreach ($terms as $term) {
                        echo '<div class="single_cat col-md-3">';
                        echo '<h3>'.$pterm->name.'</h3>'; 
                        echo "<ul>";
                        echo '<li><a href="' . get_term_link( $term->name, $taxonomyName ) . '">' . $term->name . '</a></li>'; 
                        echo "</ul>";
                        echo '</div>'; 
                    }
                }

【讨论】:

  • 这可能适用于前端,但不适用于分类编辑屏幕。在这一点上,我必须通过 ""taxonomy_parent_dropdown_args"" 钩子更改下拉菜单的参数。
  • 可以在父目录下制作自定义子目录列表
  • 是的,但子类别必须与父类别属于同一类型。因此,如果我将父类别命名为 mjm_customer,则所有子类别都必须来自 mjm_customer 类型。但是孩子们应该有一个自己的类别类型mjm_projects。我已经深入研究了代码 @see link 我在 5 月 29 日 13:42 发表的评论 [/link> 并看到这是不可能的。所以我会尝试将它存储为术语元。
猜你喜欢
  • 1970-01-01
  • 2014-06-02
  • 2013-08-03
  • 1970-01-01
  • 2014-08-21
  • 2019-05-10
  • 1970-01-01
  • 1970-01-01
  • 2014-10-26
相关资源
最近更新 更多