2004-01-27 10:58:01 +01:00
< ? php
2007-12-17 00:47:58 +01:00
/**
* Author Template functions for use in themes .
*
2008-05-25 17:45:05 +02:00
* These functions must be used within the WordPress Loop .
*
* @ link http :// codex . wordpress . org / Author_Templates
*
2007-12-17 00:47:58 +01:00
* @ package WordPress
* @ subpackage Template
*/
2005-06-13 01:22:06 +02:00
2007-06-02 05:04:01 +02:00
/**
2008-05-25 17:45:05 +02:00
* Retrieve the author of the current post .
2007-12-17 00:47:58 +01:00
*
* @ since 1.5
* @ uses $authordata The current author ' s DB object .
* @ uses apply_filters () Calls 'the_author' hook on the author display name .
*
2007-06-02 05:04:01 +02:00
* @ param string $deprecated Deprecated .
* @ return string The author ' s display name .
*/
2006-08-31 07:07:12 +02:00
function get_the_author ( $deprecated = '' ) {
2005-10-12 19:01:50 +02:00
global $authordata ;
2006-08-31 07:07:12 +02:00
return apply_filters ( 'the_author' , $authordata -> display_name );
2004-01-27 10:58:01 +01:00
}
2005-06-13 01:22:06 +02:00
2007-06-02 05:04:01 +02:00
/**
2008-05-25 17:45:05 +02:00
* Display the name of the author of the current post .
2007-12-17 00:47:58 +01:00
*
2008-05-25 17:45:05 +02:00
* The behavior of this function is based off of old functionality predating
* get_the_author () . This function is not deprecated , but is designed to echo
* the value from get_the_author () and as an result of any old theme that might
* still use the old behavior will also pass the value from get_the_author () .
2007-12-28 22:19:44 +01:00
*
2008-05-25 17:45:05 +02:00
* The normal , expected behavior of this function is to echo the author and not
* return it . However , backwards compatiability has to be maintained .
2007-12-28 22:19:44 +01:00
*
2007-12-17 00:47:58 +01:00
* @ since 0.71
2007-06-02 05:04:01 +02:00
* @ see get_the_author ()
2008-05-25 17:45:05 +02:00
* @ link http :// codex . wordpress . org / Template_Tags / the_author
2007-12-17 00:47:58 +01:00
*
2007-06-02 05:04:01 +02:00
* @ param string $deprecated Deprecated .
2008-05-25 17:45:05 +02:00
* @ param string $deprecated_echo Echo the string or return it .
2007-06-02 05:04:01 +02:00
* @ return string The author ' s display name , from get_the_author () .
*/
2006-08-31 07:07:12 +02:00
function the_author ( $deprecated = '' , $deprecated_echo = true ) {
if ( $deprecated_echo )
echo get_the_author ();
return get_the_author ();
2004-12-16 00:15:17 +01:00
}
2007-06-02 05:04:01 +02:00
/**
2008-05-25 17:45:05 +02:00
* Retrieve the description of the author of the current post .
2007-12-17 00:47:58 +01:00
*
* @ since 1.5
* @ uses $authordata The current author ' s DB object .
2007-06-02 05:04:01 +02:00
* @ return string The author ' s description .
*/
2004-12-16 00:15:17 +01:00
function get_the_author_description () {
2005-10-12 19:01:50 +02:00
global $authordata ;
2005-11-23 19:01:32 +01:00
return $authordata -> description ;
2004-12-16 00:15:17 +01:00
}
2007-06-02 05:04:01 +02:00
/**
2008-05-25 17:45:05 +02:00
* Display the description of the author of the current post .
2007-12-17 00:47:58 +01:00
*
2008-05-25 17:45:05 +02:00
* @ link http :// codex . wordpress . org / Template_Tags / the_author_description
2007-12-24 07:57:34 +01:00
* @ since 1.0 . 0
2007-06-02 05:04:01 +02:00
* @ see get_the_author_description ()
*/
2004-12-16 00:15:17 +01:00
function the_author_description () {
2005-10-12 19:01:50 +02:00
echo get_the_author_description ();
2004-12-16 00:15:17 +01:00
}
2007-06-02 05:04:01 +02:00
/**
2008-05-25 17:45:05 +02:00
* Retrieve the login name of the author of the current post .
2007-12-17 00:47:58 +01:00
*
* @ since 1.5
* @ uses $authordata The current author ' s DB object .
2007-06-02 05:04:01 +02:00
* @ return string The author ' s login name ( username ) .
*/
2004-12-16 00:15:17 +01:00
function get_the_author_login () {
2005-10-12 19:01:50 +02:00
global $authordata ;
return $authordata -> user_login ;
2004-01-27 10:58:01 +01:00
}
2005-10-12 19:01:50 +02:00
2007-06-02 05:04:01 +02:00
/**
2008-05-25 17:45:05 +02:00
* Display the login name of the author of the current post .
2007-12-17 00:47:58 +01:00
*
2008-05-25 17:45:05 +02:00
* @ link http :// codex . wordpress . org / Template_Tags / the_author_login
2007-12-17 00:47:58 +01:00
* @ since 0.71
2007-06-02 05:04:01 +02:00
* @ see get_the_author_login ()
*/
2004-01-27 10:58:01 +01:00
function the_author_login () {
2005-10-12 19:01:50 +02:00
echo get_the_author_login ();
2004-01-27 10:58:01 +01:00
}
2007-06-02 05:04:01 +02:00
/**
2008-05-25 17:45:05 +02:00
* Retrieve the first name of the author of the current post .
2007-12-17 00:47:58 +01:00
*
* @ since 1.5
* @ uses $authordata The current author ' s DB object .
2007-06-02 05:04:01 +02:00
* @ return string The author ' s first name .
*/
2004-12-16 00:15:17 +01:00
function get_the_author_firstname () {
2005-10-12 19:01:50 +02:00
global $authordata ;
return $authordata -> first_name ;
2004-12-16 00:15:17 +01:00
}
2007-06-02 05:04:01 +02:00
/**
2008-05-25 17:45:05 +02:00
* Display the first name of the author of the current post .
2007-12-17 00:47:58 +01:00
*
2008-05-25 17:45:05 +02:00
* @ link http :// codex . wordpress . org / Template_Tags / the_author_firstname
2007-12-17 00:47:58 +01:00
* @ since 0.71
* @ uses get_the_author_firstname ()
2007-06-02 05:04:01 +02:00
*/
2004-01-27 10:58:01 +01:00
function the_author_firstname () {
2005-10-12 19:01:50 +02:00
echo get_the_author_firstname ();
2004-01-27 10:58:01 +01:00
}
2007-06-02 05:04:01 +02:00
/**
2008-05-25 17:45:05 +02:00
* Retrieve the last name of the author of the current post .
2007-12-17 00:47:58 +01:00
*
* @ since 1.5
* @ uses $authordata The current author ' s DB object .
2007-06-02 05:04:01 +02:00
* @ return string The author ' s last name .
*/
2004-12-16 00:15:17 +01:00
function get_the_author_lastname () {
2005-10-12 19:01:50 +02:00
global $authordata ;
return $authordata -> last_name ;
2004-12-16 00:15:17 +01:00
}
2005-10-12 19:01:50 +02:00
2007-06-02 05:04:01 +02:00
/**
2008-05-25 17:45:05 +02:00
* Display the last name of the author of the current post .
2007-12-17 00:47:58 +01:00
*
2008-05-25 17:45:05 +02:00
* @ link http :// codex . wordpress . org / Template_Tags / the_author_lastname
2007-12-17 00:47:58 +01:00
* @ since 0.71
* @ uses get_the_author_lastname ()
2007-06-02 05:04:01 +02:00
*/
2004-01-27 10:58:01 +01:00
function the_author_lastname () {
2005-10-12 19:01:50 +02:00
echo get_the_author_lastname ();
2004-01-27 10:58:01 +01:00
}
2007-06-02 05:04:01 +02:00
/**
2008-05-25 17:45:05 +02:00
* Retrieve the nickname of the author of the current post .
2007-12-17 00:47:58 +01:00
*
* @ since 1.5
* @ uses $authordata The current author ' s DB object .
2007-06-02 05:04:01 +02:00
* @ return string The author ' s nickname .
*/
2004-12-16 00:15:17 +01:00
function get_the_author_nickname () {
2005-10-12 19:01:50 +02:00
global $authordata ;
return $authordata -> nickname ;
2004-12-16 00:15:17 +01:00
}
2005-10-12 19:01:50 +02:00
2007-06-02 05:04:01 +02:00
/**
2008-05-25 17:45:05 +02:00
* Display the nickname of the author of the current post .
2007-12-17 00:47:58 +01:00
*
2008-05-25 17:45:05 +02:00
* @ link http :// codex . wordpress . org / Template_Tags / the_author_nickname
2007-12-17 00:47:58 +01:00
* @ since 0.71
* @ uses get_the_author_nickname ()
2007-06-02 05:04:01 +02:00
*/
2004-01-27 10:58:01 +01:00
function the_author_nickname () {
2005-10-12 19:01:50 +02:00
echo get_the_author_nickname ();
2004-01-27 10:58:01 +01:00
}
2007-06-02 05:04:01 +02:00
/**
2008-05-25 17:45:05 +02:00
* Retrieve the ID of the author of the current post .
2007-12-17 00:47:58 +01:00
*
* @ since 1.5
* @ uses $authordata The current author ' s DB object .
2007-06-02 05:04:01 +02:00
* @ return int The author ' s ID .
*/
2004-12-16 00:15:17 +01:00
function get_the_author_ID () {
2005-10-12 19:01:50 +02:00
global $authordata ;
2007-06-02 05:04:01 +02:00
return ( int ) $authordata -> ID ;
2004-12-16 00:15:17 +01:00
}
2007-06-02 05:04:01 +02:00
/**
2008-05-25 17:45:05 +02:00
* Display the ID of the author of the current post .
2007-12-17 00:47:58 +01:00
*
2008-06-20 22:56:40 +02:00
* @ link http :// codex . wordpress . org / Template_Tags / the_author_ID
2007-12-17 00:47:58 +01:00
* @ since 0.71
* @ uses get_the_author_ID ()
2007-06-02 05:04:01 +02:00
*/
2004-01-27 10:58:01 +01:00
function the_author_ID () {
2005-10-12 19:01:50 +02:00
echo get_the_author_id ();
2004-01-27 10:58:01 +01:00
}
2007-06-02 05:04:01 +02:00
/**
2008-05-25 17:45:05 +02:00
* Retrieve the email of the author of the current post .
2007-12-17 00:47:58 +01:00
*
* @ since 1.5
* @ uses $authordata The current author ' s DB object .
2007-06-02 05:04:01 +02:00
* @ return string The author ' s username .
*/
2004-12-16 00:15:17 +01:00
function get_the_author_email () {
2004-12-23 22:52:09 +01:00
global $authordata ;
return $authordata -> user_email ;
2004-12-16 00:15:17 +01:00
}
2004-12-23 22:52:09 +01:00
2007-06-02 05:04:01 +02:00
/**
2008-05-25 17:45:05 +02:00
* Display the email of the author of the current post .
2007-12-17 00:47:58 +01:00
*
2008-05-25 17:45:05 +02:00
* @ link http :// codex . wordpress . org / Template_Tags / the_author_email
2007-12-17 00:47:58 +01:00
* @ since 0.71
* @ uses get_the_author_email ()
2007-06-02 05:04:01 +02:00
*/
2004-01-27 10:58:01 +01:00
function the_author_email () {
2004-12-23 22:52:09 +01:00
echo apply_filters ( 'the_author_email' , get_the_author_email () );
2004-01-27 10:58:01 +01:00
}
2007-06-02 05:04:01 +02:00
/**
2008-05-25 17:45:05 +02:00
* Retrieve the URL to the home page of the author of the current post .
2007-12-17 00:47:58 +01:00
*
* @ since 1.5
* @ uses $authordata The current author ' s DB object .
2007-06-02 05:04:01 +02:00
* @ return string The URL to the author ' s page .
*/
2004-12-16 00:15:17 +01:00
function get_the_author_url () {
2005-10-12 19:01:50 +02:00
global $authordata ;
2007-06-13 20:03:17 +02:00
2007-06-27 02:51:04 +02:00
if ( 'http://' == $authordata -> user_url )
2007-06-13 20:03:17 +02:00
return '' ;
2005-10-12 19:01:50 +02:00
return $authordata -> user_url ;
2004-12-16 00:15:17 +01:00
}
2005-10-12 19:01:50 +02:00
2007-06-02 05:04:01 +02:00
/**
2008-05-25 17:45:05 +02:00
* Display the URL to the home page of the author of the current post .
2007-12-17 00:47:58 +01:00
*
2008-05-25 17:45:05 +02:00
* @ link http :// codex . wordpress . org / Template_Tags / the_author_url
2007-12-17 00:47:58 +01:00
* @ since 0.71
* @ uses get_the_author_url ()
2007-06-02 05:04:01 +02:00
*/
2004-01-27 10:58:01 +01:00
function the_author_url () {
2005-10-12 19:01:50 +02:00
echo get_the_author_url ();
2004-01-27 10:58:01 +01:00
}
2007-06-02 05:04:01 +02:00
/**
2008-05-25 17:45:05 +02:00
* Display either author 's link or author' s name .
*
* If the author has a home page set , echo an HTML link , otherwise just echo the
* author ' s name .
2007-12-17 00:47:58 +01:00
*
2008-05-25 17:45:05 +02:00
* @ link http :// codex . wordpress . org / Template_Tags / the_author_link
2007-12-17 00:47:58 +01:00
* @ since 2.1
* @ uses get_the_author_url ()
* @ uses the_author ()
2007-06-02 05:04:01 +02:00
*/
2006-08-30 20:07:49 +02:00
function the_author_link () {
if ( get_the_author_url ()) {
echo '<a href="' . get_the_author_url () . '" title="' . sprintf ( __ ( " Visit %s's website " ), get_the_author ()) . '" rel="external">' . get_the_author () . '</a>' ;
} else {
the_author ();
}
}
2007-06-02 05:04:01 +02:00
/**
2008-05-25 17:45:05 +02:00
* Retrieve the ICQ number of the author of the current post .
2007-12-17 00:47:58 +01:00
*
* @ since 1.5
* @ uses $authordata The current author ' s DB object .
2007-06-02 05:04:01 +02:00
* @ return string The author ' s ICQ number .
*/
2004-12-16 00:15:17 +01:00
function get_the_author_icq () {
2005-10-12 19:01:50 +02:00
global $authordata ;
return $authordata -> icq ;
2004-12-16 00:15:17 +01:00
}
2005-10-12 19:01:50 +02:00
2007-06-02 05:04:01 +02:00
/**
2008-05-25 17:45:05 +02:00
* Display the ICQ number of the author of the current post .
2007-12-17 00:47:58 +01:00
*
2008-05-25 17:45:05 +02:00
* @ link http :// codex . wordpress . org / Template_Tags / the_author_icq
2007-12-17 00:47:58 +01:00
* @ since 0.71
2007-06-02 05:04:01 +02:00
* @ see get_the_author_icq ()
*/
2004-01-27 10:58:01 +01:00
function the_author_icq () {
2005-10-12 19:01:50 +02:00
echo get_the_author_icq ();
2004-01-27 10:58:01 +01:00
}
2007-06-02 05:04:01 +02:00
/**
2008-05-25 17:45:05 +02:00
* Retrieve the AIM name of the author of the current post .
2007-12-17 00:47:58 +01:00
*
* @ since 1.5
* @ uses $authordata The current author ' s DB object .
2007-06-02 05:04:01 +02:00
* @ return string The author ' s AIM name .
*/
2004-12-16 00:15:17 +01:00
function get_the_author_aim () {
2005-10-12 19:01:50 +02:00
global $authordata ;
return str_replace ( ' ' , '+' , $authordata -> aim );
2004-12-16 00:15:17 +01:00
}
2005-10-12 19:01:50 +02:00
2007-06-02 05:04:01 +02:00
/**
2008-05-25 17:45:05 +02:00
* Display the AIM name of the author of the current post .
2007-12-17 00:47:58 +01:00
*
2008-05-25 17:45:05 +02:00
* @ link http :// codex . wordpress . org / Template_Tags / the_author_aim
2007-12-17 00:47:58 +01:00
* @ since 0.71
2007-06-02 05:04:01 +02:00
* @ see get_the_author_aim ()
*/
2004-01-27 10:58:01 +01:00
function the_author_aim () {
2005-10-12 19:01:50 +02:00
echo get_the_author_aim ();
2004-01-27 10:58:01 +01:00
}
2007-06-02 05:04:01 +02:00
/**
2008-05-25 17:45:05 +02:00
* Retrieve the Yahoo ! IM name of the author of the current post .
2007-12-17 00:47:58 +01:00
*
* @ since 1.5
* @ uses $authordata The current author ' s DB object .
2007-06-02 05:04:01 +02:00
* @ return string The author ' s Yahoo ! IM name .
*/
2004-12-16 00:15:17 +01:00
function get_the_author_yim () {
2005-10-12 19:01:50 +02:00
global $authordata ;
return $authordata -> yim ;
2004-12-16 00:15:17 +01:00
}
2005-10-12 19:01:50 +02:00
2007-06-02 05:04:01 +02:00
/**
2008-05-25 17:45:05 +02:00
* Display the Yahoo ! IM name of the author of the current post .
2007-12-17 00:47:58 +01:00
*
2008-05-25 17:45:05 +02:00
* @ link http :// codex . wordpress . org / Template_Tags / the_author_yim
2007-12-17 00:47:58 +01:00
* @ since 0.71
2007-06-02 05:04:01 +02:00
* @ see get_the_author_yim ()
*/
2004-01-27 10:58:01 +01:00
function the_author_yim () {
2005-10-12 19:01:50 +02:00
echo get_the_author_yim ();
2004-01-27 10:58:01 +01:00
}
2007-06-02 05:04:01 +02:00
/**
2008-05-25 17:45:05 +02:00
* Retrieve the MSN address of the author of the current post .
2007-12-17 00:47:58 +01:00
*
* @ since 1.5
* @ uses $authordata The current author ' s DB object .
2007-06-02 05:04:01 +02:00
* @ return string The author ' s MSN address .
*/
2004-12-16 00:15:17 +01:00
function get_the_author_msn () {
2005-10-12 19:01:50 +02:00
global $authordata ;
return $authordata -> msn ;
2004-12-16 00:15:17 +01:00
}
2005-10-12 19:01:50 +02:00
2007-06-02 05:04:01 +02:00
/**
2008-05-25 17:45:05 +02:00
* Display the MSN address of the author of the current post .
2007-12-17 00:47:58 +01:00
*
2008-05-25 17:45:05 +02:00
* @ link http :// codex . wordpress . org / Template_Tags / the_author_msn
2007-12-17 00:47:58 +01:00
* @ since 0.71
2007-06-02 05:04:01 +02:00
* @ see get_the_author_msn ()
*/
2004-01-27 10:58:01 +01:00
function the_author_msn () {
2005-10-12 19:01:50 +02:00
echo get_the_author_msn ();
2004-01-27 10:58:01 +01:00
}
2007-06-02 05:04:01 +02:00
/**
2008-05-25 17:45:05 +02:00
* Retrieve the number of posts by the author of the current post .
2007-12-17 00:47:58 +01:00
*
* @ since 1.5
* @ uses $post The current post in the Loop ' s DB object .
* @ uses get_usernumposts ()
2007-06-02 05:04:01 +02:00
* @ return int The number of posts by the author .
*/
2004-12-16 00:15:17 +01:00
function get_the_author_posts () {
2005-10-12 19:01:50 +02:00
global $post ;
2007-06-02 05:04:01 +02:00
return get_usernumposts ( $post -> post_author );
2004-12-16 00:15:17 +01:00
}
2005-10-12 19:01:50 +02:00
2007-06-02 05:04:01 +02:00
/**
2008-05-25 17:45:05 +02:00
* Display the number of posts by the author of the current post .
2007-12-17 00:47:58 +01:00
*
2008-05-25 17:45:05 +02:00
* @ link http :// codex . wordpress . org / Template_Tags / the_author_posts
2007-12-17 00:47:58 +01:00
* @ since 0.71
* @ uses get_the_author_posts () Echos returned value from function .
2007-06-02 05:04:01 +02:00
*/
2004-01-27 10:58:01 +01:00
function the_author_posts () {
2005-10-12 19:01:50 +02:00
echo get_the_author_posts ();
2004-01-27 10:58:01 +01:00
}
2007-06-02 05:04:01 +02:00
/**
2008-05-25 17:45:05 +02:00
* Display an HTML link to the author page of the author of the current post .
2007-12-17 00:47:58 +01:00
*
2008-05-25 17:45:05 +02:00
* Does just echo get_author_posts_url () function , like the others do . The
* reason for this , is that another function is used to help in printing the
* link to the author ' s posts .
2007-12-17 00:47:58 +01:00
*
2008-05-25 17:45:05 +02:00
* @ link http :// codex . wordpress . org / Template_Tags / the_author_posts_link
2007-12-17 00:47:58 +01:00
* @ since 1.2
* @ uses $authordata The current author ' s DB object .
* @ uses get_author_posts_url ()
* @ uses get_the_author ()
* @ param string $deprecated Deprecated .
2007-06-02 05:04:01 +02:00
*/
2006-08-31 07:07:12 +02:00
function the_author_posts_link ( $deprecated = '' ) {
2005-10-12 19:01:50 +02:00
global $authordata ;
2007-09-04 01:32:58 +02:00
printf (
'<a href="%1$s" title="%2$s">%3$s</a>' ,
get_author_posts_url ( $authordata -> ID , $authordata -> user_nicename ),
sprintf ( __ ( 'Posts by %s' ), attribute_escape ( get_the_author () ) ),
2007-06-02 05:04:01 +02:00
get_the_author ()
);
}
/**
2008-05-25 17:45:05 +02:00
* Retrieve the URL to the author page of the author of the current post .
2007-12-17 00:47:58 +01:00
*
* @ since 2.1
* @ uses $wp_rewrite WP_Rewrite
2007-06-02 05:04:01 +02:00
* @ return string The URL to the author ' s page .
*/
2006-08-30 20:07:49 +02:00
function get_author_posts_url ( $author_id , $author_nicename = '' ) {
2007-12-06 20:49:33 +01:00
global $wp_rewrite ;
2007-03-23 01:59:21 +01:00
$auth_ID = ( int ) $author_id ;
2005-10-12 19:01:50 +02:00
$link = $wp_rewrite -> get_author_permastruct ();
if ( empty ( $link ) ) {
2006-08-30 23:46:31 +02:00
$file = get_option ( 'home' ) . '/' ;
2005-10-12 19:01:50 +02:00
$link = $file . '?author=' . $auth_ID ;
} else {
2006-07-28 01:27:27 +02:00
if ( '' == $author_nicename ) {
$user = get_userdata ( $author_id );
if ( ! empty ( $user -> user_nicename ) )
$author_nicename = $user -> user_nicename ;
}
2005-10-12 19:01:50 +02:00
$link = str_replace ( '%author%' , $author_nicename , $link );
2006-08-30 23:46:31 +02:00
$link = get_option ( 'home' ) . trailingslashit ( $link );
2005-10-12 19:01:50 +02:00
}
$link = apply_filters ( 'author_link' , $link , $author_id , $author_nicename );
return $link ;
2004-03-19 17:20:49 +01:00
}
2007-06-02 05:04:01 +02:00
/**
2008-05-25 17:45:05 +02:00
* Retrieve the specified author ' s preferred display name .
2007-12-17 00:47:58 +01:00
*
2007-12-24 07:57:34 +01:00
* @ since 1.0 . 0
2007-06-02 05:04:01 +02:00
* @ param int $auth_id The ID of the author .
* @ return string The author ' s display name .
*/
2006-06-08 01:17:59 +02:00
function get_author_name ( $auth_id ) {
$authordata = get_userdata ( $auth_id );
return $authordata -> display_name ;
}
2007-06-02 05:04:01 +02:00
/**
2008-05-25 17:45:05 +02:00
* List all the authors of the blog , with several options available .
2007-12-17 00:47:58 +01:00
*
2008-05-25 17:45:05 +02:00
* optioncount ( boolean ) ( false ) : Show the count in parenthesis next to the
* author ' s name .
* exclude_admin ( boolean ) ( true ) : Exclude the 'admin' user that is installed by
* default .
2007-06-02 05:04:01 +02:00
* show_fullname ( boolean ) ( false ) : Show their full names .
* hide_empty ( boolean ) ( true ) : Don ' t show authors without any posts .
* feed ( string ) ( '' ) : If isn 't empty, show links to author' s feeds .
* feed_image ( string ) ( '' ) : If isn ' t empty , use this image to link to feeds .
* echo ( boolean ) ( true ) : Set to false to return the output , instead of echoing .
2007-12-17 00:47:58 +01:00
*
2008-05-25 17:45:05 +02:00
* @ link http :// codex . wordpress . org / Template_Tags / wp_list_authors
2007-12-17 00:47:58 +01:00
* @ since 1.2
2007-06-02 05:04:01 +02:00
* @ param array $args The argument array .
* @ return null | string The output , if echo is set to false .
*/
2004-03-19 17:20:49 +01:00
function wp_list_authors ( $args = '' ) {
2007-03-29 03:39:05 +02:00
global $wpdb ;
2007-06-14 04:25:30 +02:00
2007-09-04 01:32:58 +02:00
$defaults = array (
'optioncount' => false , 'exclude_admin' => true ,
'show_fullname' => false , 'hide_empty' => true ,
2007-12-06 20:58:15 +01:00
'feed' => '' , 'feed_image' => '' , 'feed_type' => '' , 'echo' => true
2007-05-11 05:10:05 +02:00
);
2007-06-01 07:43:24 +02:00
2007-05-11 05:10:05 +02:00
$r = wp_parse_args ( $args , $defaults );
2007-06-15 00:45:40 +02:00
extract ( $r , EXTR_SKIP );
2007-06-01 07:43:24 +02:00
$return = '' ;
2007-12-17 00:47:58 +01:00
/** @todo Move select to get_authors(). */
2007-03-29 03:39:05 +02:00
$authors = $wpdb -> get_results ( " SELECT ID, user_nicename from $wpdb->users " . ( $exclude_admin ? " WHERE user_login <> 'admin' " : '' ) . " ORDER BY display_name " );
2007-06-01 07:43:24 +02:00
2007-03-29 03:39:05 +02:00
$author_count = array ();
2007-06-19 19:57:53 +02:00
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 ) {
2007-03-29 03:39:05 +02:00
$author_count [ $row -> post_author ] = $row -> count ;
}
2004-03-19 17:20:49 +01:00
2006-11-19 09:06:03 +01:00
foreach ( ( array ) $authors as $author ) {
2005-06-13 01:14:52 +02:00
$author = get_userdata ( $author -> ID );
2007-03-29 03:39:05 +02:00
$posts = ( isset ( $author_count [ $author -> ID ])) ? $author_count [ $author -> ID ] : 0 ;
2007-06-14 04:30:26 +02:00
$name = $author -> display_name ;
2005-10-12 19:01:50 +02:00
if ( $show_fullname && ( $author -> first_name != '' && $author -> last_name != '' ) )
$name = " $author->first_name $author->last_name " ;
if ( ! ( $posts == 0 && $hide_empty ) )
2007-06-01 07:43:24 +02:00
$return .= '<li>' ;
2005-10-12 19:01:50 +02:00
if ( $posts == 0 ) {
if ( ! $hide_empty )
2005-01-24 08:55:03 +01:00
$link = $name ;
2005-10-12 19:01:50 +02:00
} else {
2006-12-21 11:10:04 +01:00
$link = '<a href="' . get_author_posts_url ( $author -> ID , $author -> user_nicename ) . '" title="' . sprintf ( __ ( " Posts by %s " ), attribute_escape ( $author -> display_name )) . '">' . $name . '</a>' ;
2004-03-23 05:45:27 +01:00
2005-10-12 19:01:50 +02:00
if ( ( ! empty ( $feed_image )) || ( ! empty ( $feed )) ) {
$link .= ' ' ;
if ( empty ( $feed_image ))
$link .= '(' ;
$link .= '<a href="' . get_author_rss_link ( 0 , $author -> ID , $author -> user_nicename ) . '"' ;
2004-03-23 05:45:27 +01:00
2005-10-12 19:01:50 +02:00
if ( ! empty ( $feed ) ) {
$title = ' title="' . $feed . '"' ;
$alt = ' alt="' . $feed . '"' ;
$name = $feed ;
$link .= $title ;
}
2004-03-23 05:45:27 +01:00
2005-10-12 19:01:50 +02:00
$link .= '>' ;
2004-03-23 05:45:27 +01:00
2005-10-12 19:01:50 +02:00
if ( ! empty ( $feed_image ) )
2008-02-29 18:09:44 +01:00
$link .= " <img src= \" $feed_image\ " style = \ " border: none; \" $alt $title " . ' />' ;
2005-10-12 19:01:50 +02:00
else
$link .= $name ;
2004-03-23 05:45:27 +01:00
2005-10-12 19:01:50 +02:00
$link .= '</a>' ;
2004-03-23 05:45:27 +01:00
2005-10-12 19:01:50 +02:00
if ( empty ( $feed_image ) )
$link .= ')' ;
}
2004-03-23 05:45:27 +01:00
2005-10-12 19:01:50 +02:00
if ( $optioncount )
$link .= ' (' . $posts . ')' ;
2004-03-23 05:45:27 +01:00
2005-10-12 19:01:50 +02:00
}
2004-03-23 05:45:27 +01:00
2005-10-12 19:01:50 +02:00
if ( ! ( $posts == 0 && $hide_empty ) )
2007-06-01 07:43:24 +02:00
$return .= $link . '</li>' ;
2005-10-12 19:01:50 +02:00
}
2007-06-01 07:43:24 +02:00
if ( ! $echo )
return $return ;
echo $return ;
2004-03-19 17:20:49 +01:00
}
2008-06-20 22:56:40 +02:00
?>