mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-07-04 17:20:07 +00:00
Reorg category functions. #2525
git-svn-id: https://develop.svn.wordpress.org/trunk@3843 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user