私はしばらくこれに取り組んでいて、私が達成しようとしていることをするための正しい方法を見つけるためにたくさんの問題を抱えていました。
例は次のようになります。
ロールオーバー付きのおすすめの画像があり、その場所の深さが2である親カテゴリの下から単一のカテゴリの子を表示するようにします。
これは次のようになります。
場所 - >アメリカ - > Washington D.C
私はただワシントンD.Cを取得するために達成しようとしているか、またはカテゴリのためにポストで選ばれるどんな都市でも。
私はこれをループ内で再利用することになります。それぞれの情報にはそれぞれ独自の深さがあり、リストに含まれる必要がある可能性があります。
現時点では、このコードを使用していますが、指定された親の下にすべての子カテゴリが含まれるため、意図したとおりには機能しません。
<?php
foreach((get_the_category()) as $childcat) {
if (cat_is_ancestor_of('51', $childcat)) {
echo '<li> <a href="'.get_category_link($childcat->cat_ID).'">'; echo $childcat- >cat_name . '</a> </li>';
}
}
?>
私は過去3日間これで立ち往生している任意の助けは非常に役に立ちます。
試しました:
<?php
$categories = get_the_category();
if ( $categories ) :
$deepChild = getLowestCategory( $categories );
?>
<a href="<?php echo get_category_link( $deepChild->term_id ); ?>" title="<?php echo sprintf( __( "View all posts in %s" ), $deepChild->name ); ?>"><?php echo $deepChild->name; ?></a>
<?php
endif;
?>
他の投稿からの機能付き。
これはあなたの投稿に関連するすべてのカテゴリを取り、それらが他の何かの親であるかどうかを確認します。そうでなければ、それは最低のカテゴリーであり、エコーアウトされます。
<?php
$postCats = wp_get_post_categories();
foreach($postCats as $childcat) {
//this is a top level category
if ($childcat->category_parent==0) {
continue;
}
for ($J=0;$J<sizeof($postCats);$J++) {
//if another category lists it as its parent, it cannot be the lowest category
if (strcmp($childcat->name,$postCats->category_parent)==0)
break;
}
//at this point, no other cateogry says it's its parent, therefore it must be the lowest one
echo '<li> <a href="'.get_category_link($childcat->cat_ID).'">';
echo $childcat->cat_name . '</a> </li>';
}
?>