From f26f40776ff76155e3175a502f007b20fc6e9765 Mon Sep 17 00:00:00 2001 From: westi Date: Thu, 12 May 2011 07:14:44 +0000 Subject: [PATCH] Introduce new is_multi_author() template tag to make it easier for themes to have different behaviour when a site has more than one author. Fixes #14405 props filosofo. git-svn-id: http://svn.automattic.com/wordpress/trunk@17901 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/author-template.php | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/wp-includes/author-template.php b/wp-includes/author-template.php index 926ec49ff9..f792a088b0 100644 --- a/wp-includes/author-template.php +++ b/wp-includes/author-template.php @@ -368,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 + * @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 (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'); + ?>