ホームページ  >  記事  >  バックエンド開発  >  get_term_children ソース コードに関する質問: if ($term_id == $child) 私は自分の子供になりますか?

get_term_children ソース コードに関する質問: if ($term_id == $child) 私は自分の子供になりますか?

WBOY
WBOYオリジナル
2016-06-20 12:43:471051ブラウズ

* @param string $term_id 子を取得する期間の ID。
* @param 文字列 $taxonomy 分類名。
* @return array|WP_Error 用語 ID のリスト。 「$taxonomy」が存在しない場合、WP_Error が返されます。
*/
function get_term_children( $term_id, $taxonomy ) {
if ( ! taxonomy_exists($taxonomy) )
return new WP_Error('invalid_taxonomy', __('Inval ID 分類'));

$term_id = intval( $term_id );

$terms = _get_term_hierarchy($taxonomy);

if ( ! isset($terms[$term_id]) )
return array();

$children = $terms[$term_id];

foreach ( (array) $terms[$term_id] as $child ) {
if ( $term_id == $child ) {// 自己会は自己の子项ですか?吧?请教达人
続けます。
}

if ( isset($terms[$child]) )
$children = array_merge($children, get_term_children ($child, $taxonomy));
}

return $children;
}


回复讨论(解决方案)

必要はありません。データがどのように構成されているかを確認してください。ただし、出力がないため、
がこの番号に該当するわけではありません。これは必須です。
if ( isset($terms[ $child]) )
$children = array_merge($children, get_term_children($child, $taxonomy));
get_term_children 递归调用
当 $term_id 等格 $child 時就死循環了

所以
if ( $term_id == $child ) {
Continue;
}
は必ず必要な
および从代网织上看、これも在确实出现了死循環后才上的
使用得代网上去比较肿

です。
听君一席话、胜读十年书!
佩服

听君一席话、胜读十年书! 🎜>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:php?URLを変更する次の記事:php?URLを変更する