X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/699231ae09f7057a4d0000cdf32e50a3df6a04ca..b137f4ce021b4022c56f452c2eafa7abfcef0a7c:/wp-includes/author-template.php
diff --git a/wp-includes/author-template.php b/wp-includes/author-template.php
index bc44349f..641b69d4 100644
--- a/wp-includes/author-template.php
+++ b/wp-includes/author-template.php
@@ -102,6 +102,8 @@ function get_the_author_meta($field = '', $user_id = false) {
else
$authordata = get_userdata( $user_id );
+ // Keys used as object vars cannot have dashes.
+ $field = str_replace('-', '', $field);
$field = strtolower($field);
$user_field = "user_$field";
@@ -211,7 +213,7 @@ function the_author_posts_link($deprecated = '') {
}
/**
- * Retrieve the URL to the author page of the author of the current post.
+ * Retrieve the URL to the author page for the user with the ID provided.
*
* @since 2.1.0
* @uses $wp_rewrite WP_Rewrite
@@ -223,7 +225,7 @@ function get_author_posts_url($author_id, $author_nicename = '') {
$link = $wp_rewrite->get_author_permastruct();
if ( empty($link) ) {
- $file = home_url() . '/';
+ $file = home_url( '/' );
$link = $file . '?author=' . $auth_ID;
} else {
if ( '' == $author_nicename ) {
@@ -232,7 +234,7 @@ function get_author_posts_url($author_id, $author_nicename = '') {
$author_nicename = $user->user_nicename;
}
$link = str_replace('%author%', $author_nicename, $link);
- $link = home_url() . trailingslashit($link);
+ $link = home_url( user_trailingslashit( $link ) );
}
$link = apply_filters('author_link', $link, $author_id, $author_nicename);
@@ -257,7 +259,7 @@ function get_author_posts_url($author_id, $author_nicename = '') {
* echoing.
*
style (string) ('list'): Whether to display list of authors in list form
* or as a string.
- * html (bool) (true): Whether to list the items in html for or plaintext.
+ * html (bool) (true): Whether to list the items in html form or plaintext.
*
*
*
@@ -270,101 +272,97 @@ function wp_list_authors($args = '') {
global $wpdb;
$defaults = array(
+ 'orderby' => 'name', 'order' => 'ASC', 'number' => '',
'optioncount' => false, 'exclude_admin' => true,
'show_fullname' => false, 'hide_empty' => true,
'feed' => '', 'feed_image' => '', 'feed_type' => '', 'echo' => true,
'style' => 'list', 'html' => true
);
- $r = wp_parse_args( $args, $defaults );
- extract($r, EXTR_SKIP);
+ $args = wp_parse_args( $args, $defaults );
+ extract( $args, EXTR_SKIP );
+
$return = '';
- /** @todo Move select to get_authors(). */
- $users = get_users_of_blog();
- $author_ids = array();
- foreach ( (array) $users as $user )
- $author_ids[] = $user->user_id;
- if ( count($author_ids) > 0 ) {
- $author_ids = implode(',', $author_ids );
- $authors = $wpdb->get_results( "SELECT ID, user_nicename from $wpdb->users WHERE ID IN($author_ids) " . ($exclude_admin ? "AND user_login <> 'admin' " : '') . "ORDER BY display_name" );
- } else {
- $authors = array();
- }
+ $query_args = wp_array_slice_assoc( $args, array( 'orderby', 'order', 'number' ) );
+ $query_args['fields'] = 'ids';
+ $authors = get_users( $query_args );
$author_count = array();
foreach ( (array) $wpdb->get_results("SELECT DISTINCT post_author, COUNT(ID) AS count FROM $wpdb->posts WHERE post_type = 'post' AND " . get_private_posts_cap_sql( 'post' ) . " GROUP BY post_author") as $row )
$author_count[$row->post_author] = $row->count;
- foreach ( (array) $authors as $author ) {
+ foreach ( $authors as $author_id ) {
+ $author = get_userdata( $author_id );
- $link = '';
+ if ( $exclude_admin && 'admin' == $author->display_name )
+ continue;
- $author = get_userdata( $author->ID );
- $posts = (isset($author_count[$author->ID])) ? $author_count[$author->ID] : 0;
- $name = $author->display_name;
+ $posts = isset( $author_count[$author->ID] ) ? $author_count[$author->ID] : 0;
- if ( $show_fullname && ($author->first_name != '' && $author->last_name != '') )
+ if ( !$posts && $hide_empty )
+ continue;
+
+ $link = '';
+
+ if ( $show_fullname && $author->first_name && $author->last_name )
$name = "$author->first_name $author->last_name";
+ else
+ $name = $author->display_name;
- if( !$html ) {
- if ( $posts == 0 ) {
- if ( ! $hide_empty )
- $return .= $name . ', ';
- } else
- $return .= $name . ', ';
+ if ( !$html ) {
+ $return .= $name . ', ';
- // No need to go further to process HTML.
- continue;
+ continue; // No need to go further to process HTML.
}
- if ( !($posts == 0 && $hide_empty) && 'list' == $style )
+ if ( 'list' == $style ) {
$return .= '';
- if ( $posts == 0 ) {
- if ( ! $hide_empty )
- $link = $name;
- } else {
- $link = 'display_name) ) . '">' . $name . '';
-
- if ( (! empty($feed_image)) || (! empty($feed)) ) {
- $link .= ' ';
- if (empty($feed_image))
- $link .= '(';
- $link .= '';
- else
- $link .= $name;
-
- $link .= '';
-
- if ( empty($feed_image) )
- $link .= ')';
+ }
+
+ $link = 'display_name) ) . '">' . $name . '';
+
+ if ( !empty( $feed_image ) || !empty( $feed ) ) {
+ $link .= ' ';
+ if ( empty( $feed_image ) ) {
+ $link .= '(';
+ }
+
+ $link .= '';
+ else
+ $link .= $name;
+
+ $link .= '';
+ if ( empty( $feed_image ) )
+ $link .= ')';
}
- if ( $posts || ! $hide_empty )
- $return .= $link . ( ( 'list' == $style ) ? '' : ', ' );
+ if ( $optioncount )
+ $link .= ' ('. $posts . ')';
+
+ $return .= $link;
+ $return .= ( 'list' == $style ) ? '' : ', ';
}
- $return = trim($return, ', ');
+ $return = rtrim($return, ', ');
- if ( ! $echo )
+ if ( !$echo )
return $return;
+
echo $return;
}