📄 template-functions-category.php
字号:
<?phpfunction get_the_category($id=false) { global $post, $wpdb, $category_cache; if (! $id) { $id = $post->ID; } if ($category_cache[$id]) { return $category_cache[$id]; } else { $categories = $wpdb->get_results(" SELECT category_id, cat_name, category_nicename, category_description, category_parent FROM {$wpdb->categories}, {$wpdb->post2cat} WHERE {$wpdb->post2cat}.category_id = cat_ID AND {$wpdb->post2cat}.post_id = ($id' "); return $categories; }}function get_category_link($echo = false, $category_id, $category_nicename) { global $wpdb, $post, $siteurl,$cache_categories; $category_id = intval($category_id); $cat_ID = $category_id; $permalink_structure = get_settings('permalink_structure'); if ('' == $permalink_structure) { $file = "$siteurl/index.php"; $link = $file.'?cat='.$cat_ID; } else { if (!$category_nicename) { $category_nicename = $cache_categories[$category_id]->category_nicename; } // Get any static stuff from the front $front = substr($permalink_structure, 0, strpos($permalink_structure, '%')); $link = $siteurl . $front . 'category/' ; if ($parent=$cache_categories[$category_id]->category_parent) $link .= get_category_parents($parent, FALSE, '/', TRUE); $link .= $category_nicename . '/'; } if ($echo) echo $link; return $link;}function get_category_rss_link($echo = false, $category_id, $category_nicename) { global $siteurl; $category_id = intval($category_id); $cat_ID = $category_id; $permalink_structure = get_settings('permalink_structure'); if ('' == $permalink_structure) { $file = $siteurl . '/wp-rss2.php'; $link = $file .'?cat='. $category_id; } else { $link = get_category_link(0, $category_id, $category_nicename); $link = $link . "feed/"; } if ($echo) echo $link; return $link;}function the_category($seperator = '', $parents='') { global $category_cache; $categories = get_the_category(); $thelist = ''; if ('' == $seperator) { $thelist .= '<ul class="post-categories">'; foreach ($categories as $category) {// $category->cat_name = stripslashes($category->cat_name); $category->cat_name = $category->cat_name; $thelist .= "\n\t<li>"; switch(strtolower($parents)) { case 'multiple': if ($category->category_parent) { $thelist .= get_category_parents($category->category_parent, TRUE); } $thelist .= '<a href="' . get_category_link(0, $category->category_id, $category->category_nicename) . '" title="' . sprintf("查看%s中的所有文章", $category->cat_name) . '">'.$category->cat_name.'</a></li>'; break; case 'single': $thelist .= '<a href="' . get_category_link(0, $category->category_id, $category->category_nicename) . '" title="' . sprintf("查看%s中的所有文章", $category->cat_name) . '>'; if ($category->category_parent) { $thelist .= get_category_parents($category->category_parent, FALSE); } $thelist .= $category->cat_name.'</a></li>'; break; case '': default: $thelist .= '<a href="' . get_category_link(0, $category->category_id, $category->category_nicename) . '" title="' . sprintf("查看%s中的所有文章", $category->cat_name) . '">'.$category->cat_name.'</a></li>'; } } $thelist .= '</ul>'; } else { $i = 0; foreach ($categories as $category) {// $category->cat_name = stripslashes($category->cat_name); $category->cat_name = $category->cat_name; if (0 < $i) $thelist .= $seperator . ' '; switch(strtolower($parents)) { case 'multiple': if ($category->category_parent) $thelist .= get_category_parents($category->category_parent, TRUE); $thelist .= '<a href="' . get_category_link(0, $category->category_id, $category->category_nicename) . '" title="' . sprintf("查看%s中的所有文章", $category->cat_name) . '">'.$category->cat_name.'</a>'; break; case 'single': $thelist .= '<a href="' . get_category_link(0, $category->category_id, $category->category_nicename) . '" title="' . sprintf("查看%s中的所有文章", $category->cat_name) . '">'; if ($category->category_parent) $thelist .= get_category_parents($category->category_parent, FALSE); $thelist .= "$category->cat_name</a>"; break; case '': default: $thelist .= '<a href="' . get_category_link(0, $category->category_id, $category->category_nicename) . '" title="' . sprintf("查看%s中的所有文章", $category->cat_name) . '">'.$category->cat_name.'</a>'; } ++$i; } } echo apply_filters('the_category', $thelist);}function the_category_rss($type = 'rss') { $categories = get_the_category(); $the_list = ''; foreach ($categories as $category) { $category->cat_name = stripslashes(convert_chars($category->cat_name)); if ('rdf' == $type) { $the_list .= "\n\t<dc:subject>$category->cat_name</dc:subject>"; } else { $the_list .= "\n\t<category>$category->cat_name</category>"; } } echo wp_convert_rss_charset(apply_filters('the_category_rss', $the_list));}function get_the_category_by_ID($cat_ID) { global $tablecategories, $cache_categories, $wpdb ; if ( !$cache_categories[$cat_ID] ) { $cat_name = $wpdb->get_var("SELECT cat_name FROM {$wpdb->categories} WHERE cat_ID = '$cat_ID'"); $cache_categories[$cat_ID]->cat_name = $cat_name; } else { $cat_name = $cache_categories[$cat_ID]->cat_name; } return(stripslashes($cat_name));}function get_category_parents($id, $link = FALSE, $separator = '/', $nicename = FALSE){ global $tablecategories, $cache_categories; $chain = ""; $parent = $cache_categories[$id]; if ($nicename) { $name = $parent->category_nicename; } else { $name = $parent->cat_name; } if ($parent->category_parent) $chain .= get_category_parents($parent->category_parent, $link, $separator, $nicename); if ($link) { $chain .= '<a href="' . get_category_link(0, $parent->cat_ID, $parent->category_nicename) . '" title="' . sprintf("View all posts in %s", $parent->cat_name) . '">'.$name.'</a>' . $separator; } else { $chain .= $name.$separator; } return $chain;}function get_category_children($id, $before = '/', $after = '') { global $cache_categories; $c_cache = $cache_categories; // Can't do recursive foreach on a global, have to make a copy $chain = ''; foreach ($c_cache as $category){ if ($category->category_parent == $id){ $chain .= $before.$category->cat_ID.$after; $chain .= get_category_children($category->cat_ID, $before, $after); } } return $chain;}function the_category_ID($echo = true) { global $post; if ($echo) echo $post->post_category; else return $post->post_category;}function the_category_head($before='', $after='') { global $post, $currentcat, $previouscat, $dateformat, $newday; $currentcat = $post->post_category; if ($currentcat != $previouscat) { echo $before; echo get_the_category_by_ID($currentcat); echo $after; $previouscat = $currentcat; }}function category_description($category = 0) { global $cat, $cache_categories; if (!$category) $category = $cat; $category_description = $cache_categories[$category]->category_description; $category_description = apply_filters('category_description', $category_description); return $category_description;}// out of the WordPress loopfunction dropdown_cats($optionall = 1, $all = 'All', $sort_column = 'ID', $sort_order = 'asc', $optiondates = 0, $optioncount = 0, $hide_empty = 1, $optionnone=FALSE, $selected=0, $hide=0) { global $wpdb,$siteurl,$cat;// if (($file == 'blah') || ($file == '')) $file = $siteurl . '/index.php'; if (!$selected) $selected=$cat; $sort_column = 'cat_'.$sort_column; $query = " SELECT cat_ID, cat_name, category_nicename,category_parent, category_description cat_description, COUNT({$wpdb->post2cat}.post_id) AS cat_count, DAYOFMONTH(MAX(post_date)) AS lastday, MONTH(MAX(post_date)) AS lastmonth FROM {$wpdb->categories} LEFT JOIN {$wpdb->post2cat} ON (cat_ID = category_id) LEFT JOIN {$wpdb->posts} ON (ID = post_id) WHERE cat_ID > 0 "; if ($hide) { $query .= " AND cat_ID != $hide"; $query .= get_category_children($hide, " AND cat_ID != "); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -