Reorg category functions. #2525

git-svn-id: https://develop.svn.wordpress.org/trunk@3843 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Ryan Boren
2006-06-04 21:36:52 +00:00
parent 56a3ec113b
commit 58ed7bdc3b
4 changed files with 282 additions and 274 deletions

View File

@@ -626,86 +626,6 @@ function &get_page(&$page, $output = OBJECT) {
}
}
function get_category_by_path($category_path, $full_match = true, $output = OBJECT) {
global $wpdb;
$category_path = rawurlencode(urldecode($category_path));
$category_path = str_replace('%2F', '/', $category_path);
$category_path = str_replace('%20', ' ', $category_path);
$category_paths = '/' . trim($category_path, '/');
$leaf_path = sanitize_title(basename($category_paths));
$category_paths = explode('/', $category_paths);
foreach($category_paths as $pathdir)
$full_path .= ($pathdir!=''?'/':'') . sanitize_title($pathdir);
$categories = $wpdb->get_results("SELECT cat_ID, category_nicename, category_parent FROM $wpdb->categories WHERE category_nicename = '$leaf_path'");
if ( empty($categories) )
return NULL;
foreach ($categories as $category) {
$path = '/' . $leaf_path;
$curcategory = $category;
while ($curcategory->category_parent != 0) {
$curcategory = $wpdb->get_row("SELECT cat_ID, category_nicename, category_parent FROM $wpdb->categories WHERE cat_ID = '$curcategory->category_parent'");
$path = '/' . $curcategory->category_nicename . $path;
}
if ( $path == $full_path )
return get_category($category->cat_ID, $output);
}
// If full matching is not required, return the first cat that matches the leaf.
if ( ! $full_match )
return get_category($categories[0]->cat_ID, $output);
return NULL;
}
// Retrieves category data given a category ID or category object.
// Handles category caching.
function &get_category(&$category, $output = OBJECT) {
global $wpdb;
if ( empty($category) )
return null;
if ( is_object($category) ) {
wp_cache_add($category->cat_ID, $category, 'category');
$_category = $category;
} else {
if ( ! $_category = wp_cache_get($category, 'category') ) {
$_category = $wpdb->get_row("SELECT * FROM $wpdb->categories WHERE cat_ID = '$category' LIMIT 1");
wp_cache_add($category, $_category, 'category');
}
}
if ( $output == OBJECT ) {
return $_category;
} elseif ( $output == ARRAY_A ) {
return get_object_vars($_category);
} elseif ( $output == ARRAY_N ) {
return array_values(get_object_vars($_category));
} else {
return $_category;
}
}
function get_catname($cat_ID) {
$category = &get_category($cat_ID);
return $category->cat_name;
}
function get_all_category_ids() {
global $wpdb;
if ( ! $cat_ids = wp_cache_get('all_category_ids', 'category') ) {
$cat_ids = $wpdb->get_col("SELECT cat_ID FROM $wpdb->categories");
wp_cache_add('all_category_ids', $cat_ids, 'category');
}
return $cat_ids;
}
function get_all_page_ids() {
global $wpdb;