diff --git a/wp-admin/admin-functions.php b/wp-admin/admin-functions.php
index b9d0bb09c..dd6fa4e9a 100644
--- a/wp-admin/admin-functions.php
+++ b/wp-admin/admin-functions.php
@@ -2,40 +2,45 @@
// Dandy new recursive multiple category stuff.
-function cat_rows($parent = 0, $level = 0) {
+function cat_rows($parent = 0, $level = 0, $categories = 0) {
global $wpdb, $tablecategories, $tablepost2cat, $bgcolor;
- $categories = $wpdb->get_results("SELECT * FROM $tablecategories WHERE category_parent = $parent ORDER BY cat_name");
+ if (!$categories) {
+ $categories = $wpdb->get_results("SELECT * FROM $tablecategories ORDER BY cat_name");
+ }
if ($categories) {
foreach ($categories as $category) {
- $count = $wpdb->get_var("SELECT COUNT(post_id) FROM $tablepost2cat WHERE category_id = $category->cat_ID");
- $pad = str_repeat('— ', $level);
+ if ($category->category_parent == $parent) {
+ $count = $wpdb->get_var("SELECT COUNT(post_id) FROM $tablepost2cat WHERE category_id = $category->cat_ID");
+ $pad = str_repeat('— ', $level);
- $bgcolor = ('#eee' == $bgcolor) ? 'none' : '#eee';
- echo "
$pad $category->cat_name |
- $category->category_description |
- $count |
- Edit | cat_name) ."\' and all its posts will go to the default category.\\n \'OK\' to delete, \'Cancel\' to stop.')\" class='delete'>Delete |
-
";
+ $bgcolor = ('#eee' == $bgcolor) ? 'none' : '#eee';
+ echo "$pad $category->cat_name |
+ $category->category_description |
+ $count |
+ Edit | cat_name) ."\' and all its posts will go to the default category.\\n \'OK\' to delete, \'Cancel\' to stop.')\" class='delete'>Delete |
+
";
cat_rows($category->cat_ID, $level + 1);
+ }
}
} else {
return false;
}
}
-function wp_dropdown_cats($currentcat, $currentparent = 0, $parent = 0, $level = 0) {
+function wp_dropdown_cats($currentcat, $currentparent = 0, $parent = 0, $level = 0, $categories = 0) {
global $wpdb, $tablecategories, $tablepost2cat, $bgcolor;
- $categories = $wpdb->get_results("SELECT * FROM $tablecategories WHERE category_parent = $parent ORDER BY cat_name");
+ if (!$categories) {
+ $categories = $wpdb->get_results("SELECT * FROM $tablecategories ORDER BY cat_name");
+ }
if ($categories) {
- foreach ($categories as $category) { if ($currentcat != $category->cat_ID) {
+ foreach ($categories as $category) { if ($currentcat != $category->cat_ID && $parent == $category->category_parent) {
$count = $wpdb->get_var("SELECT COUNT(post_id) FROM $tablepost2cat WHERE category_id = $category->cat_ID");
$pad = str_repeat('– ', $level);
echo "\n\t";
- if ($currentcat != $category->cat_ID)
- wp_dropdown_cats($currentcat, $currentparent, $category->cat_ID, $level + 1);
+ wp_dropdown_cats($currentcat, $currentparent, $category->cat_ID, $level + 1, $categories);
} }
} else {
return false;