cat_is_ancestor_of(). fixes #3387

git-svn-id: https://develop.svn.wordpress.org/trunk@4525 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Ryan Boren 2006-11-24 16:37:44 +00:00
parent f74d084276
commit 2bdfce3c20
2 changed files with 16 additions and 1 deletions

View File

@ -108,7 +108,7 @@ function wp_insert_category($catarr) {
$category_description = apply_filters('pre_category_description', $category_description);
$category_parent = (int) $category_parent;
if ( empty($category_parent) || !get_category( $category_parent ) || $category_parent == $cat_ID )
if ( empty($category_parent) || !get_category( $category_parent ) || ($cat_ID && _cat_is_ancestor_of($cat_ID, $category_parent) ) )
$category_parent = 0;
if ( isset($posts_private) )

View File

@ -225,6 +225,21 @@ function get_cat_name($cat_id) {
return $category->cat_name;
}
function cat_is_ancestor_of($cat1, $cat2) {
if ( is_int($cat1) )
$cat1 = & get_category($cat1);
if ( is_int($cat2) )
$cat2 = & get_category($cat2);
if ( !$cat1->cat_ID || !$cat2->category_parent )
return false;
if ( $cat2->category_parent == $cat1->cat_ID )
return true;
return cat_is_ancestor_of($cat1, get_category($cat2->parent_category));
}
//
// Private
//