8

「categoryone」に親があるかどうかを確認しようとしています。categoryone というカテゴリがあることを確認して確認できますが、categoryone に親カテゴリがあるかどうかはわかりません。以下のコードのようなものをコーディングしようとしました。

  $tid = term_exists('categoryone', 'category', 0);

  $term_ids = [];

  if ( $tid !== 0 && $tid !== null )
  {
$term_ids[] = $tid['term_id'];

  }
  else
  {
    // If there is not a parent category!
    $insert_term_id = wp_insert_term( 'categoryone', 'category' );
    if ( ! is_wp_error )
    $term_ids[] = $insert_term_id;
  }
  wp_set_post_categories( $insert_id, $term_ids );
4

7 に答える 7

24

このようなものを使用できます(これをfunctions.phpファイルに貼り付けます)

function category_has_parent($catid){
    $category = get_category($catid);
    if ($category->category_parent > 0){
        return true;
    }
    return false;
}

テンプレートからこれを呼び出す

if(category_has_parent($tid)) {
    // it has a parent
}

子供をチェック

function has_Children($cat_id)
{
    $children = get_terms(
        'category',
        array( 'parent' => $cat_id, 'hide_empty' => false )
    );
    if ($children){
        return true;
    }
    return false
}

テンプレートからこれを呼び出す

if(has_Children($tid)) {
    // it has children
}
于 2013-09-28T09:20:59.273 に答える
1

以下のコードを使用して、カテゴリの親と子を確認します。

$term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) ); // get current term

$parent = get_term($term->parent, get_query_var('taxonomy') ); // get parent term

$children = get_term_children($term->term_id, get_query_var('taxonomy')); // get children

if(($parent->term_id!="" && sizeof($children)>0)) {

   // has parent and child

}elseif(($parent->term_id!="") && (sizeof($children)==0)) {

   // has parent, no child

}elseif(($parent->term_id=="") && (sizeof($children)>0)) {

   // no parent, has child

}
于 2015-10-14T10:01:40.373 に答える
1

使用できますget_category_parents()(リンクを見て、引数などを読んでください)。これにより、すべての親のリストが階層順に返されます。その場合、最も直接の親カテゴリが必要な場合は、次のようにすることができます。

<?php 
 $parent_cats = get_category_parents( $cat, false, ',' ); 
 $parent_cat = explode(",", $parent_cats); 
 echo $parent_cat[0];    
?>

これにより、最初の親カテゴリ (現在のカテゴリのすぐ上のカテゴリ) がエコーされます。

明確にするために:

in get_category_parents()
- 引数 1 はカテゴリ ID です (私は$cat任意に使用しました)
- 引数 2 は、返された各親カテゴリへのリンクを wp に追加する場合です
- 引数 3 は、返されたカテゴリを区切るために使用される区切り文字です (存在する場合)

in explode()
- 引数 1 は、配列内の文字列を区切るために検索する区切り文字です。
引数 2 は、区切るソース文字列です。

ハッピーコーディング!

于 2013-09-28T09:15:38.267 に答える