我有一个类似杂志的帖子结构,如下所示:Parent -> Sub category -> Article
.
父类是问题,子类是杂志内的部分,如新闻和采访等,然后文章就在这些部分内。
我有与子类别关联的背景图像,然后该子类别中的文章继承背景图像。单一代码。php从其子类别中检索背景图像,因此[1]不是其顶级父级[0]。
<?php
$category = get_the_category();
$hierarchy = array_reverse( get_ancestors( $category[0]->term_id, \'category\' ) );
$hierarchy[] = $category[0]->term_id;
?>
<body style="background:url(\'<?php echo z_taxonomy_image_url($hierarchy[1]); ?>\')" class="background-img">
在大多数情况下,这很好,但是在一些文章中,背景图像没有显示出来。我有面包屑显示类别结构,工作的帖子显示完整
parent -> sub category -> post name
结构,但对那些不起作用的只是显示
parent -> post name.
底部有标准的wordpress面包屑和元信息,总是显示文章的正确继承人,这就是为什么我感到困惑的原因。
为什么有些帖子是他们正确的继承人,而其他帖子则不是?
我的permalink结构是index.php/category/postname
你可以在这里查看bugpost with background and proper taxonomy at the top
post with incorrect hierarchy here so no background and incorrect breadcrumbs at the top
最合适的回答,由SO网友:Tom J Nowell 整理而成
您的代码失败,因为第一个术语是父术语,这是由于同时检查父术语和子术语造成的。
你不需要这样做,如果我有一个继承人a->B->C->帖子,并且我将帖子添加到C类别中,它会自动成为其父类的一部分