ID ) ) {
$current_id = $post->ID;
} else {
$current_id = false;
}
$title_tag = function_exists( 'is_woocommerce' ) && is_woocommerce() && is_singular( 'product' ) ? 'span' : 'h1';
echo '<' . $title_tag . ' class="pagetitle-title heading">';
if ( function_exists( 'is_woocommerce' ) && is_woocommerce() ) {
woocommerce_page_title();
} elseif ( is_category() || is_tag() || is_tax() ) {
echo single_tag_title( '', true );
} elseif ( is_author() ) {
the_author();
} elseif ( is_date() ) {
_e( 'Archive', 'allegiant' );
} elseif ( is_404() ) {
echo __( 'Page Not Found', 'allegiant' );
} elseif ( is_search() ) {
echo __( 'Search Results for', 'allegiant' ) . ' "' . get_search_query() . '"';
} else {
echo get_the_title( $current_id );
}
echo '' . $title_tag . '>';
}
}
//Displays the current page's title. Used in the main banner area.
if ( ! function_exists( 'cpotheme_header_image' ) ) {
function cpotheme_header_image() {
$url = apply_filters( 'cpotheme_header_image', get_header_image() );
if ( '' != $url ) {
return $url;
} else {
return false;
}
}
}
//Add theme-specific body classes
add_filter( 'body_class', 'cpotheme_body_class' );
function cpotheme_body_class( $body_classes = '' ) {
$current_id = cpotheme_current_id();
$classes = '';
//Sidebar Layout
$classes .= ' sidebar-' . cpotheme_get_sidebar_position();
$body_classes[] = esc_attr( $classes );
return $body_classes;
}
//Display viewport tag
if ( ! function_exists( 'cpotheme_viewport' ) ) {
add_action( 'wp_head', 'cpotheme_viewport' );
function cpotheme_viewport() {
echo ' ' . "\n";
}
}
//Print pingback metatag
if ( ! function_exists( 'cpotheme_pingback' ) ) {
add_action( 'wp_head', 'cpotheme_pingback' );
function cpotheme_pingback() {
if ( get_option( 'default_ping_status' ) == 'open' ) {
echo ' ' . "\n";
}
}
}
//Print charset metatag
if ( ! function_exists( 'cpotheme_charset' ) ) {
add_action( 'wp_head', 'cpotheme_charset' );
function cpotheme_charset() {
echo ' ' . "\n";
}
}
//Display shortcut edit links for logged in users
if ( ! function_exists( 'cpotheme_edit' ) ) {
function cpotheme_edit() {
edit_post_link( __( 'Edit', 'allegiant' ) );
}
}
//Display the site's logo
if ( ! function_exists( 'cpotheme_logo' ) ) {
function cpotheme_logo( $width = 0, $height = 0 ) {
$output = '
';
if ( 0 == cpotheme_get_option( 'general_texttitle' ) ) {
if ( '' == cpotheme_get_option( 'general_logo' ) ) {
if ( defined( 'CPOTHEME_LOGO_WIDTH' ) ) {
$width = intval( CPOTHEME_LOGO_WIDTH );
}
$output .= '
';
} else {
$logo_width = cpotheme_get_option( 'general_logo_width' );
$logo_url = esc_url( cpotheme_get_option( 'general_logo' ) );
if ( '' != $logo_width ) {
$logo_width = ' style="width:' . esc_attr( $logo_width ) . 'px;"';
}
$output .= '
';
}
}
$classes = '';
if ( 0 == cpotheme_get_option( 'general_texttitle' ) ) {
$classes = ' hidden';
}
if ( ! is_front_page() ) {
$output .= '
' . get_bloginfo( 'name' ) . ' ';
} else {
$output .= '
';
}
$output .= '
';
echo $output;
}
}
//Print an option content
if ( ! function_exists( 'cpotheme_block' ) ) {
function cpotheme_block( $option, $wrapper = '', $subwrapper = '' ) {
$content = cpotheme_get_option( $option );
if ( '' != trim( $content ) ) {
if ( '' != $wrapper ) {
$ids = explode( ' ', $wrapper );
if ( is_array( $ids ) ) {
$ids = $ids[0];
}
echo '';
}
if ( '' != $subwrapper ) {
echo '
';
}
echo do_shortcode( stripslashes( html_entity_decode( cpotheme_get_option( $option ) ) ) );
if ( '' != $subwrapper ) {
echo '
';
}
if ( '' != $wrapper ) {
echo '
';
}
}
}
}
//Print 404 message
if ( ! function_exists( 'cpotheme_404' ) ) {
function cpotheme_404() {
echo apply_filters( 'cpotheme_404', __( 'The requested page could not be found. It could have been deleted or changed location. Try searching for it using the search function.', 'allegiant' ) );
}
}
//Print subfooter sidebars
if ( ! function_exists( 'cpotheme_subfooter' ) ) {
function cpotheme_subfooter() {
$footer_columns = 3;
for ( $count = 1; $count <= $footer_columns; $count++ ) {
if ( is_active_sidebar( 'footer-widgets-' . $count ) ) {
$footer_last = $count == $footer_columns ? ' col-last' : '';
echo '';
dynamic_sidebar( 'footer-widgets-' . $count );
echo '
';
}
}
echo '
';
}
}
//Print footer copyright line
if ( ! function_exists( 'cpotheme_footer' ) ) {
function cpotheme_footer() {
echo '';
}
}
//Print submenu navigation
if ( ! function_exists( 'cpotheme_submenu' ) ) {
function cpotheme_submenu() {
$ancestors = array_reverse( get_post_ancestors( get_the_ID() ) );
if ( empty( $ancestors[0] ) || 0 == $ancestors[0] ) {
$ancestors[0] = get_the_ID();
}
echo '';
}
}
//Print submenu navigation
if ( ! function_exists( 'cpotheme_sitemap' ) ) {
function cpotheme_sitemap() {
//Print page list
echo '';
echo '
' . __( 'Pages', 'allegiant' ) . ' ';
echo '
' . wp_list_pages( 'sort_column=menu_order&title_li=&echo=0' ) . ' ';
echo '
';
//Print post categories and tag cloud
echo '';
echo '
' . __( 'Post Categories', 'allegiant' ) . ' ';
echo '
' . wp_list_categories( 'title_li=&show_count=1&echo=0' ) . ' ';
echo '
' . __( 'Post Tags', 'allegiant' ) . ' ';
echo '
' . wp_tag_cloud( 'echo=0' ) . ' ';
echo '
';
echo '
';
}
}
//Enqueue custom font stylesheets from Google Fonts
if ( ! function_exists( 'cpotheme_fonts' ) ) {
function cpotheme_fonts( $font_name, $load_variants = false ) {
$font_variants = false != $load_variants ? ':100,300,400,700' : '';
if ( is_array( $font_name ) ) {
foreach ( $font_name as $current_font ) {
if ( ! in_array( $current_font, array( 'Arial', 'Georgia', 'Times+New+Roman', 'Verdana' ) ) ) {
$font_id = 'cpotheme-font-' . strtolower( str_replace( '+', '-', $current_font ) );
wp_enqueue_style( $font_id, '//fonts.googleapis.com/css?family=' . str_replace( '%2B', '+', rawurlencode( $current_font . $font_variants ) ) );
}
}
} else {
if ( ! in_array( $font_name, array( 'Arial', 'Georgia', 'Times+New+Roman', 'Verdana' ) ) ) {
$font_id = 'cpotheme-font-' . strtolower( str_replace( '+', '-', $font_name ) );
wp_enqueue_style( $font_id, '//fonts.googleapis.com/css?family=' . str_replace( '%2B', '+', rawurlencode( $font_name . $font_variants ) ) );
}
}
}
}
//Creates a grid of columns for display templated content, running the WordPress loop
if ( ! function_exists( 'cpotheme_grid' ) ) {
function cpotheme_grid( $posts, $element, $template, $columns = 3, $args = null ) {
if ( null == $posts ) {
cpotheme_grid_default( $element, $template, $columns, $args );
} else {
global $post;
cpotheme_grid_custom( $posts, $element, $template, $columns, $args );
}
}
}
//Runs the grid using the default loop
if ( ! function_exists( 'cpotheme_grid_default' ) ) {
function cpotheme_grid_default( $element, $template, $columns = 3, $args = null ) {
$class = isset( $args['class'] ) ? $args['class'] : '';
if ( '' == $columns ) {
$columns = 3;
}
echo '';
$count = 0;
while ( have_posts() ) {
the_post();
if ( 0 == $count % $columns && $count > 0 ) {
echo '
';
do_action( 'cpotheme_grid_' . esc_attr( $template ) );
echo '';
}
$count++;
echo '
';
get_template_part( 'template-parts/' . esc_attr( $element ), esc_attr( $template ) );
echo '
';
}
echo '
';
}
}
//Runs the grid using a custom loop
if ( ! function_exists( 'cpotheme_grid_custom' ) ) {
function cpotheme_grid_custom( $posts, $element, $template, $columns = 3, $args = null ) {
global $post;
$class = isset( $args['class'] ) ? $args['class'] : '';
if ( '' == $columns ) {
$columns = 3;
}
echo '';
$count = 0;
foreach ( $posts as $post ) {
setup_postdata( $post );
if ( 0 == $count % $columns && $count > 0 ) {
echo '
';
do_action( 'cpotheme_grid_' . esc_attr( $template ) );
echo '';
}
$count++;
echo '
';
get_template_part( 'template-parts/' . esc_attr( $element ), esc_attr( $template ) );
echo '
';
}
echo '
';
}
}
// Generates breadcrumb navigation
if ( ! function_exists( 'cpotheme_breadcrumb' ) ) {
function cpotheme_breadcrumb( $display = false ) {
if ( ! is_home() && ! is_front_page() ) {
//Use WooCommerce navigation if it's a shop page
if ( function_exists( 'is_woocommerce' ) && function_exists( 'woocommerce_breadcrumb' ) && is_woocommerce() ) {
woocommerce_breadcrumb();
return;
}
$result = '';
if ( function_exists( 'yoast_breadcrumb' ) ) {
$result = yoast_breadcrumb( '', '', false );
}
if ( '' == $result ) {
global $post;
if ( is_object( $post ) ) {
$pid = $post->ID;
} else {
$pid = '';
}
$result = '';
if ( '' != $pid ) {
$result = " ";
//Add post hierarchy
if ( is_singular() ) :
$post_data = get_post( $pid );
$result .= "" . apply_filters( 'the_title', $post_data->post_title ) . " \n";
//Add post hierarchy
while ( $post_data->post_parent ) :
$post_data = get_post( $post_data->post_parent );
$result = "" . apply_filters( 'the_title', $post_data->post_title ) . " \n" . $result;
endwhile;
elseif ( is_tax() ) :
$result .= single_tag_title( '', false );
elseif ( is_author() ) :
$author = get_userdata( get_query_var( 'author' ) );
$result .= $author->display_name;
//Prefix with a taxonomy if possible
elseif ( is_category() ) :
$post_data = get_the_category( $pid );
if ( isset( $post_data[0] ) ) :
$data = get_category_parents( $post_data[0]->cat_ID, true, ' » ' );
if ( ! is_object( $data ) ) :
$result .= substr( $data, 0, -8 );
endif;
endif;
elseif ( is_search() ) :
$result .= __( 'Search Results', 'allegiant' );
else :
if ( isset( $post->ID ) ) {
$current_id = $post->ID;
} else {
$current_id = false;
}
if ( $current_id ) {
$result .= get_the_title( $current_id );
}
endif;
} elseif ( is_404() ) {
$result = " ";
$result .= __( 'Page Not Found', 'allegiant' );
}
$result = '' . __( 'Home', 'allegiant' ) . ' ' . $result;
}
$output = '' . $result . '
';
echo $output;
}
}
}
//Displays the search form on search pages
add_action( 'cpotheme_before_content', 'cpotheme_search_form' );
if ( ! function_exists( 'cpotheme_search_form' ) ) {
function cpotheme_search_form() {
if ( is_search() ) {
$search_query = '';
if ( isset( $_GET['s'] ) ) {
$search_query = esc_attr( $_GET['s'] );
}
echo '';
echo '';
echo '
';
if ( ! have_posts() ) {
echo '' . __( 'No results were found. Please try searching with different terms.', 'allegiant' ) . '
';
}
}
}
}
//Displays the post image on listings and blog posts
if ( ! function_exists( 'cpotheme_postpage_image' ) ) {
function cpotheme_postpage_image() {
if ( has_post_thumbnail() ) {
if ( ! is_singular( 'post' ) ) {
echo '';
the_post_thumbnail( 'portfolio' );
echo ' ';
} else {
the_post_thumbnail();
}
}
}
}
//Displays the post title on listings
if ( ! function_exists( 'cpotheme_postpage_title' ) ) {
function cpotheme_postpage_title() {
if ( ! is_singular( 'post' ) ) {
echo '';
}
}
}
//Displays the post content
if ( ! function_exists( 'cpotheme_postpage_content' ) ) {
function cpotheme_postpage_content() {
if ( true === cpotheme_get_option( 'postpage_preview' ) || is_singular( 'post' ) ) {
the_content();
cpotheme_post_pagination();
} else {
the_excerpt();
}
}
}
//Displays the post date
if ( ! function_exists( 'cpotheme_postpage_date' ) ) {
function cpotheme_postpage_date( $display = false, $date_format = '', $format_text = '' ) {
if ( '' != $date_format ) {
$date_string = get_the_date( $date_format );
} else {
$date_format = get_option( 'date_format' );
$date_string = get_the_date( $date_format );
}
if ( '' != $format_text ) {
$date_string = sprintf( $format_text, $date_string );
}
echo '' . $date_string . '
';
}
}
//Displays the author link
if ( ! function_exists( 'cpotheme_postpage_author' ) ) {
function cpotheme_postpage_author( $display = false, $format_text = '' ) {
$author_alt = sprintf( esc_attr__( 'View all posts by %s', 'allegiant' ), get_the_author() );
$author = sprintf( '%3$s ', get_author_posts_url( get_the_author_meta( 'ID' ) ), $author_alt, get_the_author() );
if ( '' != $format_text ) {
$author = sprintf( $format_text, $author );
}
echo '' . $author . '
';
}
}
//Displays the category list for the current post
if ( ! function_exists( 'cpotheme_postpage_categories' ) ) {
function cpotheme_postpage_categories( $display = false, $format_text = '' ) {
$category_list = get_the_category_list( ', ' );
if ( '' != $format_text ) {
$category_list = sprintf( $format_text, $category_list );
}
echo '' . $category_list . '
';
}
}
//Displays the number of comments for the post
if ( ! function_exists( 'cpotheme_postpage_comments' ) ) {
function cpotheme_postpage_comments( $display = false, $format_text = '' ) {
$comments_num = get_comments_number();
//Format comment texts
if ( '' != $format_text ) {
$text = $format_text;
} else {
if ( 0 == $comments_num ) {
$text = __( 'No Comments', 'allegiant' );
} elseif ( 1 == $comments_num ) {
$text = __( 'One Comment', 'allegiant' );
} else {
$text = __( '%1$s Comments', 'allegiant' );
}
}
$comments = sprintf( $text, number_format_i18n( $comments_num ) );
echo '';
}
}
//Displays the post tags
if ( ! function_exists( 'cpotheme_postpage_tags' ) ) {
function cpotheme_postpage_tags( $display = false, $before = '', $separator = ', ', $after = '' ) {
echo '';
the_tags( $before, $separator, $after );
echo '
';
}
}
//Display Read More link for post excerpts
if ( ! function_exists( 'cpotheme_postpage_readmore' ) ) {
function cpotheme_postpage_readmore( $classes = '' ) {
if ( ! is_singular( 'post' ) ) {
echo '';
echo apply_filters( 'cpotheme_readmore', __( 'Read More', 'allegiant' ) );
echo ' ';
}
}
}
//Displays the author box
if ( ! function_exists( 'cpotheme_author' ) ) {
function cpotheme_author() {
if ( get_the_author_meta( 'description' ) ) {
if ( function_exists( 'ts_fab_add_author_box' ) ) {
echo ts_fab_add_author_box( '' );
} else {
echo '';
echo '
';
echo '
' . get_avatar( get_the_author_meta( 'user_email' ), 100 ) . '
';
echo '
';
echo '
';
echo '
';
the_author_meta( 'description' );
echo '
';
//Social links
echo '
';
echo '
';
echo '
';
echo '
';
}
}
}
remove_filter( 'the_content', 'ts_fab_add_author_box', 15 );
}
//Displays visual media of a particular post
if ( ! function_exists( 'cpotheme_post_media' ) ) {
function cpotheme_post_media( $post_id ) {
the_post_thumbnail( 'full', array( 'class' => 'single-image' ) );
}
}
//Paginates a single post's content by using a numbered list
if ( ! function_exists( 'cpotheme_pagination' ) ) {
function cpotheme_pagination() {
$query = $GLOBALS['wp_query'];
$current_page = max( 1, absint( $query->get( 'paged' ) ) );
$total_pages = max( 1, absint( $query->max_num_pages ) );
if ( 1 == $total_pages ) {
return;
}
$pages_to_show = 8;
$larger_page_to_show = 10;
$larger_page_multiple = 2;
$pages_to_show_minus_1 = $pages_to_show - 1;
$half_page_start = floor( $pages_to_show_minus_1 / 2 );
$half_page_end = ceil( $pages_to_show_minus_1 / 2 );
$start_page = $current_page - $half_page_start;
$end_page = $current_page + $half_page_end;
if ( ( $end_page - $start_page ) != $pages_to_show_minus_1 ) {
$end_page = $start_page + $pages_to_show_minus_1;
}
if ( $end_page > $total_pages ) {
$start_page = $total_pages - $pages_to_show_minus_1;
$end_page = $total_pages;
}
if ( $start_page < 1 ) {
$start_page = 1;
}
$out = '';
//First Page Link
if ( 1 == $current_page ) {
$out .= '' . __( 'First', 'allegiant' ) . ' ';
} else {
$out .= '';
}
//Show each page
foreach ( range( $start_page, $end_page ) as $i ) {
if ( $i == $current_page ) {
$out .= "$i ";
} else {
$out .= '';
}
}
//Last Page Link
if ( $total_pages == $current_page ) {
$out .= '' . __( 'Last', 'allegiant' ) . ' ';
} else {
$out .= '';
}
$out = '';
echo $out;
}
}
//Paginates a list of posts, such as the blog or portfolio
if ( ! function_exists( 'cpotheme_numbered_pagination' ) ) {
function cpotheme_numbered_pagination( $query = '' ) {
global $wp_query;
if ( '' != $query ) {
$total_pages = $query->max_num_pages;
} else {
$total_pages = $wp_query->max_num_pages;
}
if ( $total_pages > 1 ) {
echo '';
}
}
}
//Paginates a single post by using a numbered list
if ( ! function_exists( 'cpotheme_post_pagination' ) ) {
function cpotheme_post_pagination() {
wp_link_pages(
array(
'before' => '',
'pagelink' => '% ',
'separator' => '',
)
);
}
}
//Prints the main navigation menu
if ( ! function_exists( 'cpotheme_menu' ) ) {
function cpotheme_menu( $options = null ) {
if ( has_nav_menu( 'main_menu' ) ) {
if ( isset( $options['toggle'] ) && true == $options['toggle'] ) {
cpotheme_menu_toggle();
}
wp_nav_menu(
array(
'menu_id' => 'menu-main',
'menu_class' => 'menu-main',
'theme_location' => 'main_menu',
'depth' => '4',
'fallback_cb' => 'cpotheme_default_menu',
'container' => false,
)
);
}
}
}
//Prints the mobile navigation menu
if ( ! function_exists( 'cpotheme_mobile_menu' ) ) {
add_action( 'wp_footer', 'cpotheme_mobile_menu' );
function cpotheme_mobile_menu( $options = null ) {
if ( has_nav_menu( 'main_menu' ) ) {
echo '';
wp_nav_menu(
array(
'menu_id' => 'menu-mobile',
'menu_class' => 'menu-mobile',
'theme_location' => 'main_menu',
'depth' => '4',
'container' => false,
'fallback_cb' => 'cpotheme_default_menu',
'walker' => new Cpotheme_Menu_Walker(),
)
);
}
}
}
//Prints the main navigation menu
if ( ! function_exists( 'cpotheme_menu_toggle' ) ) {
function cpotheme_menu_toggle() {
if ( has_nav_menu( 'main_menu' ) ) {
echo '';
}
}
}
//Prints the footer navigation menu
if ( ! function_exists( 'cpotheme_top_menu' ) ) {
function cpotheme_top_menu() {
if ( has_nav_menu( 'top_menu' ) ) {
echo '';
}
}
}
//Prints the footer navigation menu
if ( ! function_exists( 'cpotheme_footer_menu' ) ) {
function cpotheme_footer_menu() {
if ( has_nav_menu( 'footer_menu' ) ) {
echo '';
}
}
}
//Prints a custom navigation menu based around a single taxonomy
if ( ! function_exists( 'cpotheme_secondary_menu' ) ) {
function cpotheme_secondary_menu( $taxonomy = 'cpo_portfolio_category', $class ) {
if ( taxonomy_exists( $taxonomy ) ) {
$feature_posts = get_terms( $taxonomy, 'order=ASC&orderby=name' );
if ( sizeof( $feature_posts ) > 0 ) {
$current_id = cpotheme_current_id();
echo '';
}
}
}
}
//TODO: Print a default navigation menu when there is none, using the theme markup
if ( ! function_exists( 'cpotheme_default_menu' ) ) {
function cpotheme_default_menu() {
$args = array( 'sort_column' => 'menu_order, post_title' );
$pages = get_pages( $args );
if ( $pages ) {
$count = 0;
$output = '';
$output .= '';
foreach ( $pages as $current_page ) {
$count++;
if ( 0 == $current_page->post_parent && $count < 17 ) {
$output .= '';
}
}
$output .= ' ';
}
echo $output;
}
}
//Print comment protected message
if ( ! function_exists( 'cpotheme_comments_protected' ) ) {
function cpotheme_comments_protected() {
if ( post_password_required() ) {
echo '';
return true;
}
return false;
}
}
//Print comment list title
if ( ! function_exists( 'cpotheme_comments_title' ) ) {
function cpotheme_comments_title() {
echo '';
}
}
//Print comment markup
if ( ! function_exists( 'cpotheme_comment' ) ) {
function cpotheme_comment( $comment, $args, $depth ) {
$GLOBALS['comment'] = $comment;
//Normal Comments
switch ( $comment->comment_type ) :
case '':
?>
id="comment-">
1 && get_option( 'page_comments' ) ) {
echo '';
}
}
}