当前位置: 首页 > 知识库问答 >
问题:

如何在子类别存档页面上回显自定义分类类别的父名称和永久链接

段干华皓
2023-03-14

我有一个自定义文章类型(案例研究)的自定义分类法(Experiences\u taxonomy)和一个存档模板(taxonomy Experiences.php)。我的问题是,在子类别页面上,我需要在页面顶部回显其父类别名称及其永久链接(想想breadcrumb)。我可以获取父类别ID,但无法获取名称permalink。看起来get\u祖先是正确的方向,但我得到的只是一个空数组。

以下是我的模板代码的相关部分:

    <?php

     $taxonomy = get_query_var('taxonomy');
     $termId = get_queried_object()->term_id;
     $title = get_field('expertise_deliverables_title', $taxonomy . '_' . $termId);
     $content = get_field('expertise_deliverables', $taxonomy . '_' . $termId);
     $parent = get_queried_object()->parent; 
     ?>

    <?php if ( have_posts() ) : ?>

    <p><a href="/expertise">Expertise</a> |

     <!-- This is where the parent permalink should go -->
     <a href="/">

     <!-- This is where the parent ID is echoed instead of the name -->
     <?php echo $parent; ?>

     </a> | <?php echo str_replace('Expertise: ','', get_the_archive_title()); ?></p>

一个想要的输出示例是,当查看'Apple'子类别归档页面时,它将在面包屑中包含其父类别'Fruit',如下所示:

Expertise | <a href="/fruit">Fruit</a> | Apple

任何帮助都将不胜感激!

共有2个答案

暴英达
2023-03-14

Deepti让我开始了,下面是我如何做的:

$parent = get_queried_object()->parent; // gets parent category ID
$taxonomy = get_query_var('taxonomy'); // gets the taxonomy name
$term_link = get_term_link( $parent, $taxonomy ) // Deepti's answer to get parent category link
$r = $term_link; // declares new variable with parent category link
$r = explode('/', $r); // separates url parts based on '/' delimiter
$r = array_filter($r); // creates array of parts
$r = array_merge($r, array()); // resets array keys
$code = $r[3]; // variable containing the third array key - works for my purposes because I will always need the third part (last part) of my url   
$string = str_replace("-", " ", $code); // removes the dash if dash exists in my slug and replaces it with a space

<?php echo $string; ?>

这给了我面包屑的父类名称(水果):专家|水果|苹果

孔硕
2023-03-14

你要找的函数是get_term_link。它接受术语对象、ID或段塞以及分类法名称,并返回术语登录页的URL。

从WordPress Codex中查看有关此功能的更多信息:

 $taxonomy = get_query_var('taxonomy');
 $termId = get_queried_object()->term_id;
 $title = get_field('expertise_deliverables_title', $taxonomy . '_' . $termId);
 $content = get_field('expertise_deliverables', $taxonomy . '_' . $termId);
 $parent = get_queried_object()->parent; 
 ?>
<?php $term_link = get_term_link( $parent, $taxonomy );?>

<?php if ( have_posts() ) : ?>

<p><a href="/expertise">Expertise</a> |

 <!-- This is where the parent permalink should go -->
 <a href="<?php echo $term_link; ?>">

 <!-- This is where the parent ID is echoed instead of the name -->
 <?php echo $parent; ?>

 </a> | <?php echo str_replace('Expertise: ','', get_the_archive_title()); ?></p>
 类似资料:
  • 我想做的是在我的WooCommerce商店的侧边栏上显示一个菜单,上面有当前产品类别名称和当前类别的子项。如果产品类别没有子类,那么它应该显示父类别和父类别子类。 这是层次结构的样子:商店 当你在“准备好的食物”页面上时,你应该看到。 制备食品 苦味 Charcuterie 食品 当你在食品页面上时,你应该看到 制备食品 苦味 Charcuterie 食品 现在,我已经让它在您处于顶级类别时显示父

  • 我正在尝试创建一个定制的permalink结构,它将允许我完成以下任务。 我有一个自定义的帖子类型称为"项目" 我有一个自定义分类法,称为项目类别,分配给CPT项目 我希望我的永久链接结构如下所示: 项目/类别/项目-名称 或 /%自定义后类型%/%自定义分类%/%后名称%/ 创建这样的永久链接结构会如何影响URL或其他页面?是否可以取消定义自定义永久链接结构并将其限制为单个CPT? 谢谢

  • 在Woocommerce中,我使用“在Woocommerce存档应答功能中获取当前产品类别的子类别”在父类别页面上显示子类别列表 但我只需要将其应用于特定的产品类别,而使用带有大量类别ID的数组似乎并不理想。 我只需要显示第一个子类别的列表,例如,我的主要父类别之一是“衣服”,然后是子类别“衬衫”,然后是子类别“无袖”。我只需要在第一个子类别上显示它,在本例中为“衬衫”。

  • 我有趣的wordpress,并设置了自定义帖子类型(称为产品 我将有一个名为catalog的页面,并希望在一个页面上显示子类别下的所有类别/子类别和产品。 但是,我不确定它的代码。 获取所有类别并回显标题,对于每个带有子类别的父类别,回显子类别,然后回显产品,否则只回显父类别和产品。 类别1(回声父母的东西)子类别1(回声子类别的东西)帖子1(回声帖子的东西)帖子2子类别2帖子1帖子2 第2类第1

  • 我是初学者(PHP) 我显示这个日期在PHP嵌套'ul'喜欢(代码)- 一切都很好,没有问题。。。。我的问题,如果点击主分类得到我在这个类别中还没有主题。。。。我需要代码来选择用户是否在主类别中选择了主类别回显子类别——如果选择了子类别,则只显示子类别中的数据,或者用户是否在主类别示例中选择了主类别回显主题::我有类别Photosession和子类别- > 通知- 这是我选择帖子的代码 我认为我的

  • 我想在woocommerce归档页面中显示特定产品类别及其所有子类别的自定义文本。 我在商业中使用了这个代码 我的自定义文本仅在选择父类别(世界时尚)时显示。如何显示他所有的孩子类别?