web-dev-qa-db-ja.com

現在の投稿からの特定のカテゴリの詳細な一覧表示

私はしばらくこれに取り組んでいて、私が達成しようとしていることをするための正しい方法を見つけるためにたくさんの問題を抱えていました。

例は次のようになります。

ロールオーバー付きのおすすめの画像があり、その場所の深さが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;
?>

他の投稿からの機能付き。

1
espnicholas

これはあなたの投稿に関連するすべてのカテゴリを取り、それらが他の何かの親であるかどうかを確認します。そうでなければ、それは最低のカテゴリーであり、エコーアウトされます。

<?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>'; 
    } 

?>
0
fdsa