%1$s%2$s %4$s',
get_avatar(get_the_author_meta('user_email'), $author_avatar_size),
_x('Author', 'Used before post author name.', 'biogenic'),
esc_url(get_author_posts_url(get_the_author_meta('ID'))),
get_the_author()
);
}
if (in_array(get_post_type(), array('post', 'attachment')))
{
biogenic_entry_date();
}
$format = get_post_format();
if (current_theme_supports('post-formats', $format))
{
printf('%1$s%3$s',
sprintf('%s ', _x('Format', 'Used before post format.', 'biogenic')),
esc_url(get_post_format_link($format)),
get_post_format_string($format)
);
}
if (!is_singular() && !post_password_required() && (comments_open() || get_comments_number()))
{
echo '';
comments_popup_link(sprintf(__('Leave a comment on %s', 'biogenic'), get_the_title()));
echo '';
}
}
endif;
if (!function_exists('biogenic_entry_date')) :
/**
* Prints HTML with date information for current post.
*
* Create your own biogenic_entry_date() function to override in a child theme.
*
* @since biogenic 1.0
*/
function biogenic_entry_date()
{
$time_string = '';
if (get_the_time('U') !== get_the_modified_time('U'))
{
$time_string = '';
}
$time_string = sprintf($time_string,
esc_attr(get_the_date('c')),
get_the_date(),
esc_attr(get_the_modified_date('c')),
get_the_modified_date()
);
printf('%1$s %3$s',
_x('Posted on', 'Used before publish date.', 'biogenic'),
esc_url(get_permalink()),
$time_string
);
}
endif;
if (!function_exists('biogenic_entry_taxonomies')) :
/**
* Prints HTML with category and tags for current post.
*
* Create your own biogenic_entry_taxonomies() function to override in a child theme.
*
* @since biogenic 1.0
*/
function biogenic_entry_taxonomies()
{
$categories_list = get_the_category_list(_x(', ', 'Used between list items, there is a space after the comma.', 'biogenic'));
if ($categories_list && biogenic_categorized_blog())
{
printf('%1$s %2$s',
_x('Categories', 'Used before category names.', 'biogenic'),
$categories_list
);
}
$tags_list = get_the_tag_list('', _x(', ', 'Used between list items, there is a space after the comma.', 'biogenic'));
if ($tags_list)
{
printf('%1$s %2$s',
_x('Tags', 'Used before tag names.', 'biogenic'),
$tags_list
);
}
}
endif;
if (!function_exists('biogenic_entry_cats_tags')) :
/**
* Outputs catagories and tags in the entry-footer section
*
* Create your own biogenic_entry_cats_tags() function to override in a child theme.
*
* @since biogenic 1.0
*/
function biogenic_entry_cats_tags()
{
if ('post' === get_post_type())
{
biogenic_entry_taxonomies();
}
}
endif;
if (!function_exists('biogenic_post_thumbnail')) :
/**
* Displays an optional post thumbnail.
*
* Wraps the post thumbnail in an anchor element on index views, or a div
* element when on single views.
*
* Create your own biogenic_post_thumbnail() function to override in a child theme.
*
*/
function biogenic_post_thumbnail()
{
if (post_password_required() || is_attachment() || !has_post_thumbnail())
{
return;
}
if (is_singular() || is_page()) :
?>
';
}
}
endif;
if (!function_exists('biogenic_post_nav')) :
/**
* Display navigation to next/previous post when applicable.
*
* @return void
*/
function biogenic_post_nav()
{
// Don't print empty markup if there's nowhere to navigate.
$previous = (is_attachment()) ? get_post(get_post()->post_parent) : get_adjacent_post(false, '', true);
$next = get_adjacent_post(false, '', false);
if (!$next && !$previous)
{
return;
}
?>
$post->post_parent,
'fields' => 'ids',
'numberposts' => - 1,
'post_status' => 'inherit',
'post_type' => 'attachment',
'post_mime_type' => 'image',
'order' => 'ASC',
'orderby' => 'menu_order ID',
));
// If there is more than 1 attachment in a gallery...
if (count($attachment_ids) > 1)
{
foreach ($attachment_ids as $attachment_id)
{
if ($attachment_id == $post->ID)
{
$next_id = current($attachment_ids);
break;
}
}
// get the URL of the next image attachment...
if ($next_id)
{
$next_attachment_url = get_attachment_link($next_id);
} // or get the URL of the first image attachment.
else
{
$next_attachment_url = get_attachment_link(array_shift($attachment_ids));
}
}
printf('%2$s',
esc_url($next_attachment_url),
wp_get_attachment_image($post->ID, $attachment_size)
);
}
endif;
if (!function_exists('biogenic_attachment_nav')) :
/**
* Display navigation to next/previous image in attachment pages.
*/
function biogenic_attachment_nav()
{
?>
%2$s',
esc_url(get_permalink(get_the_ID())),
/* translators: %s: Name of current post */
sprintf(__('Continue reading "%s"', 'biogenic'), get_the_title(get_the_ID()))
);
return ' … ' . $link;
}
add_filter('excerpt_more', 'biogenic_excerpt_more');
endif;
/**
* Determines whether blog/site has more than one category.
*
* Create your own biogenic_categorized_blog() function to override in a child theme.
*
* @since biogenic 1.0
*
* @return bool True if there is more than one category, false otherwise.
*/
function biogenic_categorized_blog()
{
if (false === ($all_the_cool_cats = get_transient('biogenic_categories')))
{
// Create an array of all the categories that are attached to posts.
$all_the_cool_cats = get_categories(array(
'fields' => 'ids',
// We only need to know if there is more than one category.
'number' => 2,
));
// Count the number of categories that are attached to the posts.
$all_the_cool_cats = count($all_the_cool_cats);
set_transient('biogenic_categories', $all_the_cool_cats);
}
if ($all_the_cool_cats > 1)
{
// This blog has more than 1 category so biogenic_categorized_blog should return true.
return true;
} else
{
// This blog has only 1 category so biogenic_categorized_blog should return false.
return false;
}
}
/**
* Flushes out the transients used in biogenic_categorized_blog().
*
* @since biogenic 1.0
*/
function biogenic_category_transient_flusher()
{
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
{
return;
}
// Like, beat it. Dig?
delete_transient('biogenic_categories');
}
add_action('edit_category', 'biogenic_category_transient_flusher');
add_action('save_post', 'biogenic_category_transient_flusher');