X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/f9001779751f83dc8a10e478bfecb4d8dd5f964c..bf5c68485ef07868ad0a91168ecd0092af7661ae:/wp-includes/author-template.php?ds=sidebyside diff --git a/wp-includes/author-template.php b/wp-includes/author-template.php index 641b69d4..4b21e446 100644 --- a/wp-includes/author-template.php +++ b/wp-includes/author-template.php @@ -38,7 +38,7 @@ function get_the_author($deprecated = '') { * still use the old behavior will also pass the value from get_the_author(). * * The normal, expected behavior of this function is to echo the author and not - * return it. However, backwards compatiability has to be maintained. + * return it. However, backwards compatibility has to be maintained. * * @since 0.71 * @see get_the_author() @@ -203,8 +203,10 @@ function the_author_posts_link($deprecated = '') { _deprecated_argument( __FUNCTION__, '2.1' ); global $authordata; + if ( !is_object( $authordata ) ) + return false; $link = sprintf( - '%3$s', + '', get_author_posts_url( $authordata->ID, $authordata->user_nicename ), esc_attr( sprintf( __( 'Posts by %s' ), get_the_author() ) ), get_the_author() @@ -366,4 +368,34 @@ function wp_list_authors($args = '') { echo $return; } +/** + * Does this site have more than one author + * + * Checks to see if more than one author has published posts. + * + * @since 3.2.0 + * @return bool Whether or not we have more than one author + */ +function is_multi_author() { + global $wpdb; + + if ( false === ( $is_multi_author = wp_cache_get('is_multi_author', 'posts') ) ) { + $rows = (array) $wpdb->get_col("SELECT DISTINCT post_author FROM $wpdb->posts WHERE post_type = 'post' AND post_status = 'publish' LIMIT 2"); + $is_multi_author = 1 < count( $rows ) ? 1 : 0; + wp_cache_set('is_multi_author', $is_multi_author, 'posts'); + } + + return apply_filters( 'is_multi_author', (bool) $is_multi_author ); +} + +/** + * Helper function to clear the cache for number of authors. + * + * @private + */ +function __clear_multi_author_cache() { + wp_cache_delete('is_multi_author', 'posts'); +} +add_action('transition_post_status', '__clear_multi_author_cache'); + ?>