Changeset 2943
- Timestamp:
- 10/12/2005 05:01:50 PM (20 years ago)
- Location:
- trunk/wp-includes
- Files:
-
- 2 edited
-
template-functions-author.php (modified) (3 diffs)
-
template-functions-category.php (modified) (15 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-includes/template-functions-author.php
r2858 r2943 2 2 3 3 function get_the_author($idmode = '') { 4 global $authordata;5 return apply_filters('the_author', $authordata->display_name);4 global $authordata; 5 return apply_filters('the_author', $authordata->display_name); 6 6 } 7 7 8 8 function the_author($idmode = '', $echo = true) { 9 if ($echo) echo get_the_author($idmode); 9 if ( $echo ) 10 echo get_the_author($idmode); 10 11 return get_the_author($idmode); 11 12 } 12 13 13 14 function get_the_author_description() { 14 global $authordata;15 return $authordata->user_description;15 global $authordata; 16 return $authordata->user_description; 16 17 } 17 18 function the_author_description() { 18 echo get_the_author_description();19 echo get_the_author_description(); 19 20 } 20 21 21 22 function get_the_author_login() { 22 global $id,$authordata; return $authordata->user_login; 23 } 23 global $authordata; 24 return $authordata->user_login; 25 } 26 24 27 function the_author_login() { 25 echo get_the_author_login();28 echo get_the_author_login(); 26 29 } 27 30 28 31 function get_the_author_firstname() { 29 global $id,$authordata; return $authordata->first_name; 32 global $authordata; 33 return $authordata->first_name; 30 34 } 31 35 function the_author_firstname() { 32 echo get_the_author_firstname();36 echo get_the_author_firstname(); 33 37 } 34 38 35 39 function get_the_author_lastname() { 36 global $id,$authordata; return $authordata->last_name; 37 } 40 global $authordata; 41 return $authordata->last_name; 42 } 43 38 44 function the_author_lastname() { 39 echo get_the_author_lastname();45 echo get_the_author_lastname(); 40 46 } 41 47 42 48 function get_the_author_nickname() { 43 global $id,$authordata; return $authordata->nickname; 44 } 49 global $authordata; 50 return $authordata->nickname; 51 } 52 45 53 function the_author_nickname() { 46 echo get_the_author_nickname();54 echo get_the_author_nickname(); 47 55 } 48 56 49 57 function get_the_author_ID() { 50 global $id,$authordata; return $authordata->ID; 58 global $authordata; 59 return $authordata->ID; 51 60 } 52 61 function the_author_ID() { 53 echo get_the_author_id();62 echo get_the_author_id(); 54 63 } 55 64 … … 64 73 65 74 function get_the_author_url() { 66 global $id,$authordata; return $authordata->user_url; 67 } 75 global $authordata; 76 return $authordata->user_url; 77 } 78 68 79 function the_author_url() { 69 echo get_the_author_url();80 echo get_the_author_url(); 70 81 } 71 82 72 83 function get_the_author_icq() { 73 global $id,$authordata; return $authordata->icq; 74 } 84 global $authordata; 85 return $authordata->icq; 86 } 87 75 88 function the_author_icq() { 76 echo get_the_author_icq();89 echo get_the_author_icq(); 77 90 } 78 91 79 92 function get_the_author_aim() { 80 global $id,$authordata; return str_replace(' ', '+', $authordata->aim); 81 } 93 global $authordata; 94 return str_replace(' ', '+', $authordata->aim); 95 } 96 82 97 function the_author_aim() { 83 echo get_the_author_aim();98 echo get_the_author_aim(); 84 99 } 85 100 86 101 function get_the_author_yim() { 87 global $id,$authordata; return $authordata->yim; 88 } 102 global $authordata; 103 return $authordata->yim; 104 } 105 89 106 function the_author_yim() { 90 echo get_the_author_yim();107 echo get_the_author_yim(); 91 108 } 92 109 93 110 function get_the_author_msn() { 94 global $id,$authordata; return $authordata->msn; 95 } 111 global $authordata; 112 return $authordata->msn; 113 } 114 96 115 function the_author_msn() { 97 echo get_the_author_msn();116 echo get_the_author_msn(); 98 117 } 99 118 100 119 function get_the_author_posts() { 101 global $id,$post;102 $posts =get_usernumposts($post->post_author);120 global $post; 121 $posts = get_usernumposts($post->post_author); 103 122 return $posts; 104 123 } 124 105 125 function the_author_posts() { 106 echo get_the_author_posts();126 echo get_the_author_posts(); 107 127 } 108 128 109 129 /* the_author_posts_link() requires no get_, use get_author_link() */ 110 130 function the_author_posts_link($idmode='') { 111 global $id, $authordata; 112 113 echo '<a href="' . get_author_link(0, $authordata->ID, $authordata->user_nicename) . '" title="' . sprintf(__("Posts by %s"), wp_specialchars(the_author($idmode, false))) . '">' . the_author($idmode, false) . '</a>'; 114 } 115 131 global $authordata; 132 133 echo '<a href="' . get_author_link(0, $authordata->ID, $authordata->user_nicename) . '" title="' . sprintf(__("Posts by %s"), wp_specialchars(the_author($idmode, false))) . '">' . the_author($idmode, false) . '</a>'; 134 } 116 135 117 136 function get_author_link($echo = false, $author_id, $author_nicename) { 118 137 global $wpdb, $wp_rewrite, $post, $cache_userdata; 119 $auth_ID = $author_id; 120 $link = $wp_rewrite->get_author_permastruct(); 121 122 if (empty($link)) { 123 $file = get_settings('home') . '/'; 124 $link = $file . '?author=' . $auth_ID; 125 } else { 126 if ('' == $author_nicename) $author_nicename = $cache_userdata[$author_id]->user_nicename; 127 $link = str_replace('%author%', $author_nicename, $link); 128 $link = get_settings('home') . trailingslashit($link); 129 } 130 131 $link = apply_filters('author_link', $link, $author_id, $author_nicename); 132 if ($echo) echo $link; 133 return $link; 138 $auth_ID = $author_id; 139 $link = $wp_rewrite->get_author_permastruct(); 140 141 if ( empty($link) ) { 142 $file = get_settings('home') . '/'; 143 $link = $file . '?author=' . $auth_ID; 144 } else { 145 if ( '' == $author_nicename ) 146 $author_nicename = $cache_userdata[$author_id]->user_nicename; 147 $link = str_replace('%author%', $author_nicename, $link); 148 $link = get_settings('home') . trailingslashit($link); 149 } 150 151 $link = apply_filters('author_link', $link, $author_id, $author_nicename); 152 153 if ( $echo ) 154 echo $link; 155 return $link; 134 156 } 135 157 136 158 function wp_list_authors($args = '') { 137 159 parse_str($args, $r); 138 if (!isset($r['optioncount'])) $r['optioncount'] = false; 139 if (!isset($r['exclude_admin'])) $r['exclude_admin'] = true; 140 if (!isset($r['show_fullname'])) $r['show_fullname'] = false; 141 if (!isset($r['hide_empty'])) $r['hide_empty'] = true; 142 if (!isset($r['feed'])) $r['feed'] = ''; 143 if (!isset($r['feed_image'])) $r['feed_image'] = ''; 160 161 if ( !isset($r['optioncount']) ) 162 $r['optioncount'] = false; 163 if ( !isset($r['exclude_admin']) ) 164 $r['exclude_admin'] = true; 165 if ( !isset($r['show_fullname']) ) 166 $r['show_fullname'] = false; 167 if ( !isset($r['hide_empty']) ) 168 $r['hide_empty'] = true; 169 if ( !isset($r['feed']) ) 170 $r['feed'] = ''; 171 if ( !isset($r['feed_image']) ) 172 $r['feed_image'] = ''; 144 173 145 174 list_authors($r['optioncount'], $r['exclude_admin'], $r['show_fullname'], $r['hide_empty'], $r['feed'], $r['feed_image']); … … 147 176 148 177 function list_authors($optioncount = false, $exclude_admin = true, $show_fullname = false, $hide_empty = true, $feed = '', $feed_image = '') { 149 global $wpdb; 150 151 $query = "SELECT ID, user_nicename from $wpdb->users " . ($exclude_admin ? "WHERE user_login <> 'admin' " : '') . "ORDER BY display_name"; 152 $authors = $wpdb->get_results($query); 153 154 foreach($authors as $author) { 178 global $wpdb; 179 $query = "SELECT ID, user_nicename from $wpdb->users " . ($exclude_admin ? "WHERE user_login <> 'admin' " : '') . "ORDER BY display_name"; 180 $authors = $wpdb->get_results($query); 181 182 foreach ( $authors as $author ) { 155 183 $author = get_userdata( $author->ID ); 156 $posts = get_usernumposts($author->ID);157 $name = $author->nickname;158 159 if ($show_fullname && ($author->first_name != '' && $author->last_name != '')) { 160 $name = "$author->first_name $author->last_name";161 } 162 163 if (! ($posts == 0 && $hide_empty))echo "<li>";164 if ($posts == 0) {165 if ( !$hide_empty )184 $posts = get_usernumposts($author->ID); 185 $name = $author->nickname; 186 187 if ( $show_fullname && ($author->first_name != '' && $author->last_name != '') ) 188 $name = "$author->first_name $author->last_name"; 189 190 if ( !($posts == 0 && $hide_empty) ) 191 echo "<li>"; 192 if ( $posts == 0 ) { 193 if ( !$hide_empty ) 166 194 $link = $name; 167 } else { 168 $link = '<a href="' . get_author_link(0, $author->ID, $author->user_nicename) . '" title="' . sprintf(__("Posts by %s"), wp_specialchars($author->display_name)) . '">' . $name . '</a>'; 169 170 if ( (! empty($feed_image)) || (! empty($feed)) ) { 171 172 $link .= ' '; 173 174 if (empty($feed_image)) { 175 $link .= '('; 176 } 177 178 $link .= '<a href="' . get_author_rss_link(0, $author->ID, $author->user_nicename) . '"'; 179 180 if (! empty($feed)) { 181 $title = ' title="' . $feed . '"'; 182 $alt = ' alt="' . $feed . '"'; 183 $name = $feed; 184 $link .= $title; 185 } 186 187 $link .= '>'; 188 189 if (! empty($feed_image)) { 190 $link .= "<img src=\"$feed_image\" border=\"0\"$alt$title" . ' />'; 191 } else { 192 $link .= $name; 193 } 194 195 $link .= '</a>'; 196 197 if (empty($feed_image)) { 198 $link .= ')'; 199 } 200 } 201 202 if ($optioncount) { 203 $link .= ' ('. $posts . ')'; 204 } 205 } 206 207 if (! ($posts == 0 && $hide_empty)) echo "$link</li>"; 208 } 195 } else { 196 $link = '<a href="' . get_author_link(0, $author->ID, $author->user_nicename) . '" title="' . sprintf(__("Posts by %s"), wp_specialchars($author->display_name)) . '">' . $name . '</a>'; 197 198 if ( (! empty($feed_image)) || (! empty($feed)) ) { 199 $link .= ' '; 200 if (empty($feed_image)) 201 $link .= '('; 202 $link .= '<a href="' . get_author_rss_link(0, $author->ID, $author->user_nicename) . '"'; 203 204 if ( !empty($feed) ) { 205 $title = ' title="' . $feed . '"'; 206 $alt = ' alt="' . $feed . '"'; 207 $name = $feed; 208 $link .= $title; 209 } 210 211 $link .= '>'; 212 213 if ( !empty($feed_image) ) 214 $link .= "<img src=\"$feed_image\" border=\"0\"$alt$title" . ' />'; 215 else 216 $link .= $name; 217 218 $link .= '</a>'; 219 220 if ( empty($feed_image) ) 221 $link .= ')'; 222 } 223 224 if ( $optioncount ) 225 $link .= ' ('. $posts . ')'; 226 227 } 228 229 if ( !($posts == 0 && $hide_empty) ) 230 echo "$link</li>"; 231 } 209 232 } 210 233 -
trunk/wp-includes/template-functions-category.php
r2931 r2943 2 2 3 3 function get_the_category($id = false) { 4 global $post, $category_cache;4 global $post, $category_cache; 5 5 6 6 if ( !$id ) 7 7 $id = $post->ID; 8 8 9 if ( ! isset($category_cache[$id]) )9 if ( !isset($category_cache[$id]) ) 10 10 update_post_category_cache($id); 11 11 12 12 $categories = $category_cache[$id]; 13 13 14 if ( !empty($categories))14 if ( !empty($categories) ) 15 15 sort($categories); 16 16 else … … 31 31 $category_nicename = $category->category_nicename; 32 32 33 if ( $parent = $category->category_parent)33 if ( $parent = $category->category_parent ) 34 34 $category_nicename = get_category_parents($parent, false, '/', true) . $category_nicename . '/'; 35 35 … … 41 41 42 42 function get_the_category_list($separator = '', $parents='') { 43 $categories = get_the_category();44 if (empty($categories)) { 45 return apply_filters('the_category', __('Uncategorized'), $separator, $parents);46 } 47 48 $thelist = ''; 49 if ('' == $separator) { 50 $thelist .= '<ul class="post-categories">'; 51 foreach ($categories as $category) { 52 $category->cat_name = $category->cat_name;53 $thelist .= "\n\t<li>"; 54 switch(strtolower($parents)) { 55 case 'multiple': 56 if ($category->category_parent) { 57 $thelist .= get_category_parents($category->category_parent, TRUE);58 } 59 $thelist .= '<a href="' . get_category_link($category->cat_ID) . '" title="' . sprintf(__("View all posts in %s"), $category->cat_name) . '" rel="category tag">'.$category->cat_name.'</a></li>'; 60 break;61 case 'single': 62 $thelist .= '<a href="' . get_category_link($category->cat_ID) . '" title="' . sprintf(__("View all posts in %s"), $category->cat_name) . ' rel="category tag">';63 if ($category->category_parent) { 64 $thelist .= get_category_parents($category->category_parent, FALSE);65 } 66 $thelist .= $category->cat_name.'</a></li>'; 67 break;68 case '': 69 default: 70 $thelist .= '<a href="' . get_category_link($category->cat_ID) . '" title="' . sprintf(__("View all posts in %s"), $category->cat_name) . '" rel="category tag">'.$category->cat_name.'</a></li>';71 } 72 } 73 $thelist .= '</ul>'; 74 } else { 75 $i = 0; 76 foreach ($categories as $category) { 77 $category->cat_name = $category->cat_name; 78 if (0 < $i) $thelist .= $separator . ' '; 79 switch(strtolower($parents)) { 80 case 'multiple': 81 if ($category->category_parent) $thelist .= get_category_parents($category->category_parent, TRUE);82 $thelist .= '<a href="' . get_category_link($category->cat_ID) . '" title="' . sprintf(__("View all posts in %s"), $category->cat_name) . '" rel="category tag">'.$category->cat_name.'</a>';83 break; 84 case 'single': 85 $thelist .= '<a href="' . get_category_link($category->cat_ID) . '" title="' . sprintf(__("View all posts in %s"), $category->cat_name) . '" rel="category tag">'; 86 if ($category->category_parent)$thelist .= get_category_parents($category->category_parent, FALSE);87 $thelist .= "$category->cat_name</a>";88 break;89 case '':90 default:91 $thelist .= '<a href="' . get_category_link($category->cat_ID) . '" title="' . sprintf(__("View all posts in %s"), $category->cat_name) . '" rel="category tag">'.$category->cat_name.'</a>';92 }93 ++$i;94 }95 }96 return apply_filters('the_category', $thelist, $separator, $parents);43 $categories = get_the_category(); 44 if (empty($categories)) 45 return apply_filters('the_category', __('Uncategorized'), $separator, $parents); 46 47 $thelist = ''; 48 if ( '' == $separator ) { 49 $thelist .= '<ul class="post-categories">'; 50 foreach ( $categories as $category ) { 51 $category->cat_name = $category->cat_name; 52 $thelist .= "\n\t<li>"; 53 switch ( strtolower($parents) ) { 54 case 'multiple': 55 if ($category->category_parent) 56 $thelist .= get_category_parents($category->category_parent, TRUE); 57 $thelist .= '<a href="' . get_category_link($category->cat_ID) . '" title="' . sprintf(__("View all posts in %s"), $category->cat_name) . '" rel="category tag">'.$category->cat_name.'</a></li>'; 58 break; 59 case 'single': 60 $thelist .= '<a href="' . get_category_link($category->cat_ID) . '" title="' . sprintf(__("View all posts in %s"), $category->cat_name) . ' rel="category tag">'; 61 if ($category->category_parent) 62 $thelist .= get_category_parents($category->category_parent, FALSE); 63 $thelist .= $category->cat_name.'</a></li>'; 64 break; 65 case '': 66 default: 67 $thelist .= '<a href="' . get_category_link($category->cat_ID) . '" title="' . sprintf(__("View all posts in %s"), $category->cat_name) . '" rel="category tag">'.$category->cat_name.'</a></li>'; 68 } 69 } 70 $thelist .= '</ul>'; 71 } else { 72 $i = 0; 73 foreach ( $categories as $category ) { 74 $category->cat_name = $category->cat_name; 75 if ( 0 < $i ) 76 $thelist .= $separator . ' '; 77 switch ( strtolower($parents) ) { 78 case 'multiple': 79 if ( $category->category_parent ) 80 $thelist .= get_category_parents($category->category_parent, TRUE); 81 $thelist .= '<a href="' . get_category_link($category->cat_ID) . '" title="' . sprintf(__("View all posts in %s"), $category->cat_name) . '" rel="category tag">'.$category->cat_name.'</a>'; 82 break; 83 case 'single': 84 $thelist .= '<a href="' . get_category_link($category->cat_ID) . '" title="' . sprintf(__("View all posts in %s"), $category->cat_name) . '" rel="category tag">'; 85 if ( $category->category_parent ) 86 $thelist .= get_category_parents($category->category_parent, FALSE); 87 $thelist .= "$category->cat_name</a>"; 88 break; 89 case '': 90 default: 91 $thelist .= '<a href="' . get_category_link($category->cat_ID) . '" title="' . sprintf(__("View all posts in %s"), $category->cat_name) . '" rel="category tag">'.$category->cat_name.'</a>'; 92 } 93 ++$i; 94 } 95 } 96 return apply_filters('the_category', $thelist, $separator, $parents); 97 97 } 98 98 … … 108 108 109 109 function get_category_parents($id, $link = FALSE, $separator = '/', $nicename = FALSE){ 110 $chain = ''; 111 $parent = &get_category($id); 112 if ($nicename) { 113 $name = $parent->category_nicename; 114 } else { 115 $name = $parent->cat_name; 116 } 117 if ($parent->category_parent) $chain .= get_category_parents($parent->category_parent, $link, $separator, $nicename); 118 if ($link) { 119 $chain .= '<a href="' . get_category_link($parent->cat_ID) . '" title="' . sprintf(__("View all posts in %s"), $parent->cat_name) . '">'.$name.'</a>' . $separator; 120 } else { 121 $chain .= $name.$separator; 122 } 123 return $chain; 110 $chain = ''; 111 $parent = &get_category($id); 112 113 if ( $nicename ) 114 $name = $parent->category_nicename; 115 else 116 $name = $parent->cat_name; 117 118 if ( $parent->category_parent ) 119 $chain .= get_category_parents($parent->category_parent, $link, $separator, $nicename); 120 121 if ( $link ) 122 $chain .= '<a href="' . get_category_link($parent->cat_ID) . '" title="' . sprintf(__("View all posts in %s"), $parent->cat_name) . '">'.$name.'</a>' . $separator; 123 else 124 $chain .= $name.$separator; 125 return $chain; 124 126 } 125 127 … … 127 129 global $cache_categories; 128 130 129 if ( ! isset($cache_categories))131 if ( !isset($cache_categories) ) 130 132 update_category_cache(); 131 133 132 134 $c_cache = $cache_categories; // Can't do recursive foreach on a global, have to make a copy 133 135 $chain = ''; 134 foreach ( $c_cache as $category){135 if ( $category->category_parent == $id){136 foreach ( $c_cache as $category ) { 137 if ( $category->category_parent == $id ) { 136 138 $chain .= $before.$category->cat_ID.$after; 137 139 $chain .= get_category_children($category->cat_ID, $before, $after); … … 143 145 // Deprecated. 144 146 function the_category_ID($echo = true) { 145 // Grab the first cat in the list. 146 $categories = get_the_category(); 147 $cat = $categories[0]->cat_ID; 148 149 if ($echo) echo $cat; 150 151 return $cat; 147 // Grab the first cat in the list. 148 $categories = get_the_category(); 149 $cat = $categories[0]->cat_ID; 150 151 if ( $echo ) 152 echo $cat; 153 154 return $cat; 152 155 } 153 156 154 157 // Deprecated. 155 158 function the_category_head($before='', $after='') { 156 global $currentcat, $previouscat;157 // Grab the first cat in the list.158 $categories = get_the_category();159 $currentcat = $categories[0]->category_id;160 if ($currentcat != $previouscat) {161 echo $before;162 echo get_the_category_by_ID($currentcat);163 echo $after;164 $previouscat = $currentcat;165 }159 global $currentcat, $previouscat; 160 // Grab the first cat in the list. 161 $categories = get_the_category(); 162 $currentcat = $categories[0]->category_id; 163 if ( $currentcat != $previouscat ) { 164 echo $before; 165 echo get_the_category_by_ID($currentcat); 166 echo $after; 167 $previouscat = $currentcat; 168 } 166 169 } 167 170 168 171 function category_description($category = 0) { 169 global $cat; 170 if (!$category) $category = $cat; 171 $category = & get_category($category); 172 return apply_filters('category_description', $category->category_description, $category->cat_ID); 172 global $cat; 173 if ( !$category ) 174 $category = $cat; 175 $category = & get_category($category); 176 return apply_filters('category_description', $category->category_description, $category->cat_ID); 173 177 } 174 178 175 179 // out of the WordPress loop 176 180 function dropdown_cats($optionall = 1, $all = 'All', $sort_column = 'ID', $sort_order = 'asc', 177 $optiondates = 0, $optioncount = 0, $hide_empty = 1, $optionnone=FALSE, 178 $selected=0, $hide=0) { 179 global $wpdb; 180 if (($file == 'blah') || ($file == '')) $file = get_settings('home') . '/'; 181 if (!$selected) $selected=$cat; 182 $sort_column = 'cat_'.$sort_column; 183 184 $query = " 185 SELECT cat_ID, cat_name, category_nicename,category_parent, 186 COUNT($wpdb->post2cat.post_id) AS cat_count, 187 DAYOFMONTH(MAX(post_date)) AS lastday, MONTH(MAX(post_date)) AS lastmonth 188 FROM $wpdb->categories LEFT JOIN $wpdb->post2cat ON (cat_ID = category_id) 189 LEFT JOIN $wpdb->posts ON (ID = post_id) 190 WHERE cat_ID > 0 191 "; 192 if ($hide) { 193 $query .= " AND cat_ID != $hide"; 194 $query .= get_category_children($hide, " AND cat_ID != "); 195 } 196 $query .=" GROUP BY cat_ID"; 197 if (intval($hide_empty) == 1) $query .= " HAVING cat_count > 0"; 198 $query .= " ORDER BY $sort_column $sort_order, post_date DESC"; 199 200 $categories = $wpdb->get_results($query); 201 echo "<select name='cat' class='postform'>\n"; 202 if (intval($optionall) == 1) { 203 $all = apply_filters('list_cats', $all); 204 echo "\t<option value='0'>$all</option>\n"; 205 } 206 if (intval($optionnone) == 1) echo "\t<option value='-1'>".__('None')."</option>\n"; 207 if ($categories) { 208 foreach ($categories as $category) { 209 $cat_name = apply_filters('list_cats', $category->cat_name, $category); 210 echo "\t<option value=\"".$category->cat_ID."\""; 211 if ($category->cat_ID == $selected) 212 echo ' selected="selected"'; 213 echo '>'; 214 echo $cat_name; 215 if (intval($optioncount) == 1) echo ' ('.$category->cat_count.')'; 216 if (intval($optiondates) == 1) echo ' '.$category->lastday.'/'.$category->lastmonth; 217 echo "</option>\n"; 218 } 219 } 220 echo "</select>\n"; 181 $optiondates = 0, $optioncount = 0, $hide_empty = 1, $optionnone=FALSE, 182 $selected=0, $hide=0) { 183 global $wpdb; 184 if ( ($file == 'blah') || ($file == '') ) 185 $file = get_settings('home') . '/'; 186 if ( !$selected ) 187 $selected=$cat; 188 $sort_column = 'cat_'.$sort_column; 189 190 $query = " 191 SELECT cat_ID, cat_name, category_nicename,category_parent, 192 COUNT($wpdb->post2cat.post_id) AS cat_count, 193 DAYOFMONTH(MAX(post_date)) AS lastday, MONTH(MAX(post_date)) AS lastmonth 194 FROM $wpdb->categories LEFT JOIN $wpdb->post2cat ON (cat_ID = category_id) 195 LEFT JOIN $wpdb->posts ON (ID = post_id) 196 WHERE cat_ID > 0 197 "; 198 if ( $hide ) { 199 $query .= " AND cat_ID != $hide"; 200 $query .= get_category_children($hide, " AND cat_ID != "); 201 } 202 $query .=" GROUP BY cat_ID"; 203 if ( intval($hide_empty) == 1 ) 204 $query .= " HAVING cat_count > 0"; 205 $query .= " ORDER BY $sort_column $sort_order, post_date DESC"; 206 207 $categories = $wpdb->get_results($query); 208 echo "<select name='cat' class='postform'>\n"; 209 if ( intval($optionall) == 1 ) { 210 $all = apply_filters('list_cats', $all); 211 echo "\t<option value='0'>$all</option>\n"; 212 } 213 if ( intval($optionnone) == 1 ) 214 echo "\t<option value='-1'>".__('None')."</option>\n"; 215 if ( $categories ) { 216 foreach ( $categories as $category ) { 217 $cat_name = apply_filters('list_cats', $category->cat_name, $category); 218 echo "\t<option value=\"".$category->cat_ID."\""; 219 if ( $category->cat_ID == $selected ) 220 echo ' selected="selected"'; 221 echo '>'; 222 echo $cat_name; 223 if ( intval($optioncount) == 1 ) 224 echo ' ('.$category->cat_count.')'; 225 if ( intval($optiondates) == 1 ) 226 echo ' '.$category->lastday.'/'.$category->lastmonth; 227 echo "</option>\n"; 228 } 229 } 230 echo "</select>\n"; 221 231 } 222 232 … … 224 234 function wp_list_cats($args = '') { 225 235 parse_str($args, $r); 226 if (!isset($r['optionall'])) $r['optionall'] = 0; 227 if (!isset($r['all'])) $r['all'] = 'All'; 228 if (!isset($r['sort_column'])) $r['sort_column'] = 'ID'; 229 if (!isset($r['sort_order'])) $r['sort_order'] = 'asc'; 230 if (!isset($r['file'])) $r['file'] = ''; 231 if (!isset($r['list'])) $r['list'] = true; 232 if (!isset($r['optiondates'])) $r['optiondates'] = 0; 233 if (!isset($r['optioncount'])) $r['optioncount'] = 0; 234 if (!isset($r['hide_empty'])) $r['hide_empty'] = 1; 235 if (!isset($r['use_desc_for_title'])) $r['use_desc_for_title'] = 1; 236 if (!isset($r['children'])) $r['children'] = true; 237 if (!isset($r['child_of'])) $r['child_of'] = 0; 238 if (!isset($r['categories'])) $r['categories'] = 0; 239 if (!isset($r['recurse'])) $r['recurse'] = 0; 240 if (!isset($r['feed'])) $r['feed'] = ''; 241 if (!isset($r['feed_image'])) $r['feed_image'] = ''; 242 if (!isset($r['exclude'])) $r['exclude'] = ''; 243 if (!isset($r['hierarchical'])) $r['hierarchical'] = true; 236 if ( !isset($r['optionall'])) 237 $r['optionall'] = 0; 238 if ( !isset($r['all'])) 239 $r['all'] = 'All'; 240 if ( !isset($r['sort_column']) ) 241 $r['sort_column'] = 'ID'; 242 if ( !isset($r['sort_order']) ) 243 $r['sort_order'] = 'asc'; 244 if ( !isset($r['file']) ) 245 $r['file'] = ''; 246 if ( !isset($r['list']) ) 247 $r['list'] = true; 248 if ( !isset($r['optiondates']) ) 249 $r['optiondates'] = 0; 250 if ( !isset($r['optioncount']) ) 251 $r['optioncount'] = 0; 252 if ( !isset($r['hide_empty']) ) 253 $r['hide_empty'] = 1; 254 if ( !isset($r['use_desc_for_title']) ) 255 $r['use_desc_for_title'] = 1; 256 if ( !isset($r['children']) ) 257 $r['children'] = true; 258 if ( !isset($r['child_of']) ) 259 $r['child_of'] = 0; 260 if ( !isset($r['categories']) ) 261 $r['categories'] = 0; 262 if ( !isset($r['recurse']) ) 263 $r['recurse'] = 0; 264 if ( !isset($r['feed']) ) 265 $r['feed'] = ''; 266 if ( !isset($r['feed_image']) ) 267 $r['feed_image'] = ''; 268 if ( !isset($r['exclude']) ) 269 $r['exclude'] = ''; 270 if ( !isset($r['hierarchical']) ) 271 $r['hierarchical'] = true; 244 272 245 273 return list_cats($r['optionall'], $r['all'], $r['sort_column'], $r['sort_order'], $r['file'], $r['list'], $r['optiondates'], $r['optioncount'], $r['hide_empty'], $r['use_desc_for_title'], $r['children'], $r['child_of'], $r['categories'], $r['recurse'], $r['feed'], $r['feed_image'], $r['exclude'], $r['hierarchical']); … … 249 277 global $wpdb, $category_posts; 250 278 // Optiondates now works 251 if ( '' == $file) {279 if ( '' == $file ) 252 280 $file = get_settings('home') . '/'; 253 }254 281 255 282 $exclusions = ''; 256 if ( !empty($exclude)) {283 if ( !empty($exclude) ) { 257 284 $excats = preg_split('/[\s,]+/',$exclude); 258 if ( count($excats)) {259 foreach ( $excats as $excat) {285 if ( count($excats) ) { 286 foreach ( $excats as $excat ) { 260 287 $exclusions .= ' AND cat_ID <> ' . intval($excat) . ' '; 261 288 } … … 265 292 $exclusions = apply_filters('list_cats_exclusions', $exclusions ); 266 293 267 if ( intval($categories)==0){294 if ( intval($categories) == 0 ) { 268 295 $sort_column = 'cat_'.$sort_column; 269 296 270 $query = "297 $query = " 271 298 SELECT cat_ID, cat_name, category_nicename, category_description, category_parent 272 299 FROM $wpdb->categories … … 276 303 $categories = $wpdb->get_results($query); 277 304 } 278 if ( !count($category_posts)) {305 if ( !count($category_posts) ) { 279 306 $now = current_time('mysql', 1); 280 307 $cat_counts = $wpdb->get_results(" SELECT cat_ID, 281 308 COUNT($wpdb->post2cat.post_id) AS cat_count 282 FROM $wpdb->categories 309 FROM $wpdb->categories 283 310 INNER JOIN $wpdb->post2cat ON (cat_ID = category_id) 284 311 INNER JOIN $wpdb->posts ON (ID = post_id) … … 286 313 AND post_date_gmt < '$now' $exclusions 287 314 GROUP BY category_id"); 288 if (! empty($cat_counts)) { 289 foreach ($cat_counts as $cat_count) { 290 if (1 != intval($hide_empty) || $cat_count > 0) { 291 $category_posts["$cat_count->cat_ID"] = $cat_count->cat_count; 292 } 293 } 294 } 295 } 296 315 if ( !empty($cat_counts) ) { 316 foreach ( $cat_counts as $cat_count ) { 317 if ( 1 != intval($hide_empty) || $cat_count > 0 ) 318 $category_posts["$cat_count->cat_ID"] = $cat_count->cat_count; 319 } 320 } 321 } 322 297 323 if ( $optiondates ) { 298 324 $cat_dates = $wpdb->get_results(" SELECT category_id, 299 325 UNIX_TIMESTAMP( MAX(post_date) ) AS ts 300 FROM $wpdb->posts, $wpdb->post2cat, $wpdb->categories326 FROM $wpdb->posts, $wpdb->post2cat, $wpdb->categories 301 327 WHERE post_status = 'publish' AND post_id = ID $exclusions 302 328 GROUP BY category_id"); 303 foreach ( $cat_dates as $cat_date) {329 foreach ( $cat_dates as $cat_date ) { 304 330 $category_timestamp["$cat_date->category_id"] = $cat_date->ts; 305 331 } 306 332 } 307 333 308 334 $num_found=0; 309 335 $thelist = ""; 310 311 foreach ( $categories as $category) {312 if ( (intval($hide_empty) == 0 || isset($category_posts["$category->cat_ID"])) && (!$hierarchical || $category->category_parent == $child_of) ) {336 337 foreach ( $categories as $category ) { 338 if ( (intval($hide_empty) == 0 || isset($category_posts["$category->cat_ID"])) && (!$hierarchical || $category->category_parent == $child_of) ) { 313 339 $num_found++; 314 340 $link = '<a href="'.get_category_link($category->cat_ID).'" '; 315 if ( $use_desc_for_title == 0 || empty($category->category_description)) {341 if ( $use_desc_for_title == 0 || empty($category->category_description) ) 316 342 $link .= 'title="'. sprintf(__("View all posts filed under %s"), wp_specialchars($category->cat_name)) . '"'; 317 } else {343 else 318 344 $link .= 'title="' . wp_specialchars(apply_filters('category_description',$category->category_description,$category)) . '"'; 319 }320 345 $link .= '>'; 321 346 $link .= apply_filters('list_cats', $category->cat_name, $category).'</a>'; 322 347 323 348 if ( (! empty($feed_image)) || (! empty($feed)) ) { 324 349 325 350 $link .= ' '; 326 351 327 if ( empty($feed_image)) {352 if ( empty($feed_image) ) 328 353 $link .= '('; 329 } 330 331 $link .= '<a href="' . get_category_rss_link(0, $category->cat_ID, $category->category_nicename) . '"'; 354 355 $link .= '<a href="' . get_category_rss_link(0, $category->cat_ID, $category->category_nicename) . '"'; 332 356 333 357 if ( !empty($feed) ) { 334 $title = ' title="' . $feed . '"';358 $title = ' title="' . $feed . '"'; 335 359 $alt = ' alt="' . $feed . '"'; 336 360 $name = $feed; … … 340 364 $link .= '>'; 341 365 342 if ( ! empty($feed_image)) {366 if ( !empty($feed_image) ) 343 367 $link .= "<img src='$feed_image' $alt$title" . ' />'; 344 } else {368 else 345 369 $link .= $name; 346 } 347 370 348 371 $link .= '</a>'; 349 372 350 if (empty($feed_image)) {373 if (empty($feed_image)) 351 374 $link .= ')'; 352 } 353 } 354 355 if (intval($optioncount) == 1) { 375 } 376 377 if ( intval($optioncount) == 1 ) 356 378 $link .= ' ('.intval($category_posts["$category->cat_ID"]).')'; 357 } 379 358 380 if ( $optiondates ) { 359 if ( $optiondates == 1 ) $optiondates = 'Y-m-d'; 381 if ( $optiondates == 1 ) 382 $optiondates = 'Y-m-d'; 360 383 $link .= ' ' . gmdate($optiondates, $category_timestamp["$category->cat_ID"]); 361 384 } 362 if ($list) { 385 386 if ( $list ) 363 387 $thelist .= "\t<li>$link\n"; 364 } else {388 else 365 389 $thelist .= "\t$link<br />\n"; 366 } 367 if ($hierarchical && $children) $thelist .= list_cats($optionall, $all, $sort_column, $sort_order, $file, $list, $optiondates, $optioncount, $hide_empty, $use_desc_for_title, $hierarchical, $category->cat_ID, $categories, 1, $feed, $feed_image, $exclude, $hierarchical); 368 if ($list) $thelist .= "</li>\n"; 369 } 370 } 371 if (!$num_found && !$child_of){ 372 if ($list) { 390 391 if ($hierarchical && $children) 392 $thelist .= list_cats($optionall, $all, $sort_column, $sort_order, $file, $list, $optiondates, $optioncount, $hide_empty, $use_desc_for_title, $hierarchical, $category->cat_ID, $categories, 1, $feed, $feed_image, $exclude, $hierarchical); 393 if ($list) 394 $thelist .= "</li>\n"; 395 } 396 } 397 if ( !$num_found && !$child_of ) { 398 if ( $list ) { 373 399 $before = '<li>'; 374 400 $after = '</li>'; … … 377 403 return; 378 404 } 379 if ( $list && $child_of && $num_found && $recurse) {405 if ( $list && $child_of && $num_found && $recurse ) { 380 406 $pre = "\t\t<ul class='children'>"; 381 407 $post = "\t\t</ul>\n"; … … 384 410 } 385 411 $thelist = $pre . $thelist . $post; 386 if ( $recurse) {412 if ( $recurse ) 387 413 return $thelist; 388 }389 414 echo apply_filters('list_cats', $thelist); 390 415 } … … 393 418 global $post, $category_cache; 394 419 $cats = ''; 395 foreach ( $category_cache[$post->ID] as $cat) :420 foreach ( $category_cache[$post->ID] as $cat ) { 396 421 $cats[] = $cat->cat_ID; 397 endforeach;422 } 398 423 399 424 if ( in_array($category, $cats) )
Note: See TracChangeset
for help on using the changeset viewer.