Php 使自定义分类法成为另一个自定义分类法的子分类法
对于我目前正在开发的Wordpress插件(支持票证系统),我必须映射以下内容。Php 使自定义分类法成为另一个自定义分类法的子分类法,php,wordpress,custom-post-type,custom-taxonomy,Php,Wordpress,Custom Post Type,Custom Taxonomy,对于我目前正在开发的Wordpress插件(支持票证系统),我必须映射以下内容。每个票证分配给一个项目(1:1关系)。每个项目依次分配给一个客户(1:1关系)。因此,可以为客户分配任意数量的项目(1:n关系).此外,一张票证可以有多个答案(如此问题),我认为这也是一个cpt。我已经将票证创建为一个自定义帖子类型。我认为客户和项目应该是票证的分类。项目应该作为父分类分配给客户。因此,我已经为项目设置了hierarchy=true。但实际上,在父下拉列表中将显示项目而不是客户(见下面的屏幕截图)。据
每个票证分配给一个项目(1:1关系)。
每个项目依次分配给一个客户(1:1关系)。
因此,可以为客户分配任意数量的项目(1:n关系).
此外,一张票证可以有多个答案(如此问题),我认为这也是一个cpt。
我已经将票证创建为一个自定义帖子类型。
我认为客户和项目应该是票证的分类。
项目应该作为父分类分配给客户。
因此,我已经为项目设置了hierarchy=true。
但实际上,在父下拉列表中将显示项目而不是客户(见下面的屏幕截图)。
据我在Codex中所读到的,我可以使用“-hook”自定义下拉列表。
但我不确定是否会因为不同的slug而出现问题。
这是正确的还是有更好的方法来归档?
试试看
$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>';
}
}
$taxonomyName=“com\u category”;
$parent_terms=get_terms($taxonomyName,array('parent'=>0,'orderby'=>slug','hide_empty'=>false));
foreach($pterm作为父项){
$terms=get_terms($taxonomyName,array('parent'=>$pterm->term_id,'orderby'=>'slug','hide_empty'=>false));
foreach($terms作为$term){
回声';
回声“.$pterm->name.”;
回声“”;
回音“”;
回声“
”;
回声';
}
}
试试看
$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>';
}
}
$taxonomyName=“com\u category”;
$parent_terms=get_terms($taxonomyName,array('parent'=>0,'orderby'=>slug','hide_empty'=>false));
foreach($pterm作为父项){
$terms=get_terms($taxonomyName,array('parent'=>$pterm->term_id,'orderby'=>'slug','hide_empty'=>false));
foreach($terms作为$term){
回声';
回声“.$pterm->name.”;
回声“”;
回音“”;
回声“
”;
回声';
}
}
一个分类法不能是另一个分类法的子分类法。只有分类术语可以作为子项使用。我试图通过钩子更改下拉列表,这很有效。但是保存术语后,表中不再包含内容行,因此您无法再更改术语。只有号码仍然可用且正确。因此,我的问题澄清了子术语是否必须与父术语属于相同的分类法。也许我可以将关系保存为术语Meta。然后两种分类法都必须是非层次的。一种分类法不能是另一种分类法的子分类法。只有分类术语可以作为子项使用。我试图通过钩子更改下拉列表,这很有效。但是保存术语后,表中不再包含内容行,因此您无法再更改术语。只有号码仍然可用且正确。因此,我的问题澄清了子术语是否必须与父术语属于相同的分类法。也许我可以将关系保存为术语Meta。然后两种分类法都必须是非层次的。这可能在前端有效,但在分类法编辑屏幕上无效。在这方面,我必须通过“taxonomy\u parent\u dropdown\u args”钩子更改下拉列表的参数。您可以在parentYes下创建自定义子类别列表,但子类别必须来自与父类别相同的类型。因此,如果我将父类别命名为mjm_customer,则所有子类别都必须来自mjm_customer类型。但是孩子们应该有自己的mjm_项目类别。我已经在5月29日13:42[/link>深入代码@查看我的评论,发现这是不可能的。因此我将尝试将其存储为术语元。这可能在前端工作,但在分类法编辑屏幕上不起作用。在这一点上,我必须通过“分类法\父项\下拉列表\参数”更改下拉列表的参数钩子。您可以在parentYes下创建自定义子类别列表,但子类别必须来自与父类别相同的类型。因此,如果我将父类别命名为mjm_customer,则所有子类别都必须来自mjm_customer类型。但子类别应该有自己的mjm_项目类别类型。我已经深入研究了代码@see my com从5月29日13:42[/link>开始计算,并发现这是不可能的。因此我将尝试将其存储为术语metas。