post_parent ) : get_adjacent_post( false, '', true );
$next = get_adjacent_post( false, '', false );
if ( ! $next && ! $previous )
return;
}
// Don't print empty markup in archives if there's only one page.
if ( $wp_query->max_num_pages < 2 && ( is_home() || is_archive() || is_search() ) )
return;
// Add the shorten title filter
add_filter('the_title', 'vantage_content_nav_shorten_title');
$nav_class = 'site-navigation paging-navigation';
if ( is_single() )
$nav_class = 'site-navigation post-navigation';
?>
40) {
$title = wp_trim_words($title, 5);
}
return $title;
}
if ( ! function_exists( 'vantage_comment' ) ) :
/**
* Template for comments and pingbacks.
*
* Used as a callback by wp_list_comments() for displaying the comments.
*
* @since vantage 1.0
*/
function vantage_comment( $comment, $args, $depth ) {
$GLOBALS['comment'] = $comment;
switch ( $comment->comment_type ) :
case 'pingback' :
case 'trackback' :
?>
id="li-comment-">
';
$date_time = sprintf( $date_time,
esc_url( get_permalink() ),
esc_attr( get_the_time() ),
esc_attr( get_the_date( 'c' ) ),
apply_filters('vantage_post_on_date', esc_html( get_the_date() )),
esc_attr( get_the_modified_date( 'c' ) ),
esc_html( get_the_modified_date() )
);
$author = sprintf('%3$s',
esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),
esc_attr( sprintf( __( 'View all posts by %s', 'vantage' ), get_the_author() ) ),
get_the_author()
);
$comments_link = '';
$posted_on_parts = array(
'on' => sprintf( __( 'Posted on %s', 'vantage'), $date_time ),
'by' => sprintf( __( ' by %s', 'vantage' ), $author),
'with' => ' | ' . $comments_link
);
$posted_on_parts = apply_filters( 'vantage_post_on_parts', $posted_on_parts );
$posted_on = implode(' ', $posted_on_parts);
echo apply_filters('vantage_posted_on', $posted_on);
}
endif;
if(!function_exists('vantage_display_logo')):
/**
* Display the logo
*/
function vantage_display_logo(){
$logo = siteorigin_setting( 'logo_image' );
$logo = apply_filters('vantage_logo_image_id', $logo);
if( empty($logo) ) {
if ( function_exists( 'jetpack_the_site_logo' ) && jetpack_has_site_logo() ) {
// We'll let Jetpack handle things
jetpack_the_site_logo();
return;
}
// Just display the site title
$logo_html = ''.get_bloginfo( 'name' ).'
';
$logo_html = apply_filters('vantage_logo_text', $logo_html);
}
else {
// load the logo image
if(is_array($logo)) {
list ($src, $height, $width) = $logo;
}
else {
$image = wp_get_attachment_image_src($logo, 'full');
$src = $image[0];
$height = $image[2];
$width = $image[1];
}
// Add all the logo attributes
$logo_attributes = apply_filters('vantage_logo_image_attributes', array(
'src' => $src,
'class' => siteorigin_setting('logo_in_menu_constrain') ? 'logo-height-constrain' : 'logo-no-height-constrain',
'width' => round($width),
'height' => round($height),
'alt' => sprintf( __('%s Logo', 'vantage'), get_bloginfo('name') ),
) );
if($logo_attributes['width'] > vantage_get_site_width()) {
// Don't let the width be more than the site width.
$width = vantage_get_site_width();
$logo_attributes['height'] = round($logo_attributes['height'] / ($logo_attributes['width'] / $width));
$logo_attributes['width'] = $width;
}
$logo_attributes_str = array();
if( !empty( $logo_attributes ) ) {
foreach($logo_attributes as $name => $val) {
if( empty($val) ) continue;
$logo_attributes_str[] = $name.'="'.esc_attr($val).'" ';
}
}
$logo_html = apply_filters('vantage_logo_image', '
');
}
// Echo the image
echo apply_filters('vantage_logo_html', $logo_html);
}
endif;
/**
* Returns true if a blog has more than 1 category
*
* @since vantage 1.0
*/
function vantage_categorized_blog() {
if ( false === ( $count = get_transient( 'vantage_categorized_blog_cache_count' ) ) ) {
// Count the number of non-empty categories
$count = count( get_categories( array(
'hide_empty' => 1,
) ) );
// Count the number of categories that are attached to the posts
set_transient( 'vantage_categorized_blog_cache_count', $count );
}
// Return true if this blog has categories, or else false.
return ($count >= 1);
}
/**
* Flush out the transients used in vantage_categorized_blog
*
* @since vantage 1.0
*/
function vantage_category_transient_flusher() {
delete_transient( 'vantage_categorized_blog_cache_count' );
}
add_action( 'edit_category', 'vantage_category_transient_flusher' );
add_action( 'save_post', 'vantage_category_transient_flusher' );
if( !function_exists( 'vantage_get_archive_title' ) ) :
/**
* Return the archive title depending on which page is being displayed.
*
* @since vantage 1.0
*/
function vantage_get_archive_title(){
$title = '';
global $wp_query;
if ( is_category() ) {
$title = sprintf( __( 'Category Archives: %s', 'vantage' ), '' . single_cat_title( '', false ) . '' );
}
elseif ( is_tag() ) {
$title = sprintf( __( 'Tag Archives: %s', 'vantage' ), '' . single_tag_title( '', false ) . '' );
}
elseif ( is_author() ) {
the_post();
$title = sprintf( __( 'Author Archives: %s', 'vantage' ), '' . get_the_author() . '' );
rewind_posts();
}
elseif ( is_day() ) {
$title = sprintf( __( 'Daily Archives: %s', 'vantage' ), '' . get_the_date() . '' );
}
elseif ( is_month() ) {
$title = sprintf( __( 'Monthly Archives: %s', 'vantage' ), '' . get_the_date( 'F Y' ) . '' );
}
elseif ( is_year() ) {
$title = sprintf( __( 'Yearly Archives: %s', 'vantage' ), '' . get_the_date( 'Y' ) . '' );
}
elseif ( !empty($wp_query->query_vars['taxonomy']) ) {
$value = get_query_var($wp_query->query_vars['taxonomy']);
$term = get_term_by('slug',$value,$wp_query->query_vars['taxonomy']);
$tax = get_taxonomy( $wp_query->query_vars['taxonomy'] );
$title = sprintf( __( '%s: %s', 'vantage' ), $tax->label, $term->name );
}
else {
$title = __( 'Archives', 'vantage' );
}
return apply_filters('vantage_archive_title', $title);
}
endif;
/**
* Get the post meta.
*
* @since vantage 1.0
*/
function vantage_get_post_categories(){
/* translators: used between list items, there is a space after the comma */
$category_list = get_the_category_list( __( ', ', 'vantage' ) );
/* translators: used between list items, there is a space after the comma */
$tag_list = get_the_tag_list( '', __( ', ', 'vantage' ) );
if ( ! vantage_categorized_blog() || ! siteorigin_setting( 'blog_post_categories' ) ) {
// This blog only has 1 category or so we just need to worry about tags in the meta text
if ( '' != $tag_list && siteorigin_setting( 'blog_post_tags' ) ) {
$meta_text = __( 'Tagged %2$s.', 'vantage' );
}
else {
$meta_text = '';
}
}
else {
// But this blog has loads of categories so we should probably display them here
if ( '' != $tag_list && siteorigin_setting( 'blog_post_tags' )) {
$meta_text = __( 'Posted in %1$s and tagged %2$s.', 'vantage' );
}
else {
$meta_text = __( 'Posted in %1$s.', 'vantage' );
}
} // end check for categories on this blog
$meta = sprintf(
$meta_text,
$category_list,
$tag_list,
get_permalink(),
the_title_attribute( 'echo=0' )
);
return apply_filters('vantage_post_meta', $meta);
}
/**
* Gets the URL that should be displayed when clicking on an image in the view image page.
*
* @param null $post
* @return string
*/
function vantage_next_attachment_url($post = null){
if(empty($post)){
global $post;
}
/**
* Grab the IDs of all the image attachments in a gallery so we can get the URL of the next adjacent image in a gallery,
* or the first image (if we're looking at the last image in a gallery), or, in a gallery of one, just the link to that image file
*/
$attachments = array_values( get_children( array(
'post_parent' => $post->post_parent,
'post_status' => 'inherit',
'post_type' => 'attachment',
'post_mime_type' => 'image',
'order' => 'ASC',
'orderby' => 'menu_order ID'
) ) );
foreach ( $attachments as $k => $attachment ) {
if ( $attachment->ID == $post->ID )
break;
}
$k++;
// If there is more than 1 attachment in a gallery
if ( count( $attachments ) > 1 ) {
if ( isset( $attachments[ $k ] ) ){
// get the URL of the next image attachment
$next_attachment_url = get_attachment_link( $attachments[ $k ]->ID );
}
else{
// or get the URL of the first image attachment
$next_attachment_url = get_attachment_link( $attachments[ 0 ]->ID );
}
}
else {
// or, if there's only 1 image, get the URL of the image
$next_attachment_url = wp_get_attachment_url();
}
return $next_attachment_url;
}
if( !function_exists( 'vantage_pagination' ) ) :
/**
* Display the pagination
*
* @param string $pages
* @param int $range
*/
function vantage_pagination($pages = '', $range = 2) {
$showitems = ($range * 2)+1;
global $wp_query, $wp_rewrite;
$paged = $wp_query->get('paged');
if(empty($paged)) $paged = 1;
if($pages == '') {
global $wp_query;
$pages = $wp_query->max_num_pages;
if(!$pages) $pages = 1;
}
if(1 != $pages) {
$format_permalink = substr( get_pagenum_link(false), -1, 1 ) == '/' ? 'page/%#%/' : '/page/%#%/';
$format_query_string = strpos(get_pagenum_link(false), '?') === false ? '?paged=%#%' : '&paged=%#%';
echo "\n";
}
}
endif;
if( !function_exists( 'vantage_read_more_link' ) ) :
/**
* Filter the read more link.
*/
function vantage_read_more_link() {
return '' . esc_html( siteorigin_setting('blog_read_more') ) .'→