2016-01-20 16:02:53 +00:00
< ? php
/**
* Storefront template functions .
*
* @ package storefront
*/
if ( ! function_exists ( 'storefront_display_comments' ) ) {
/**
* Storefront display comments
2016-02-19 16:57:56 +00:00
*
2016-01-20 16:02:53 +00:00
* @ since 1.0 . 0
*/
function storefront_display_comments () {
2016-02-19 16:57:56 +00:00
// If comments are open or we have at least one comment, load up the comment template.
2016-01-20 16:02:53 +00:00
if ( comments_open () || '0' != get_comments_number () ) :
comments_template ();
endif ;
}
}
if ( ! function_exists ( 'storefront_comment' ) ) {
/**
* Storefront comment template
2016-02-19 16:57:56 +00:00
*
* @ param array $comment the comment array .
2016-02-25 14:46:06 +00:00
* @ param array $args the comment args .
* @ param int $depth the comment depth .
2016-01-20 16:02:53 +00:00
* @ since 1.0 . 0
*/
function storefront_comment ( $comment , $args , $depth ) {
if ( 'div' == $args [ 'style' ] ) {
$tag = 'div' ;
$add_below = 'comment' ;
} else {
$tag = 'li' ;
$add_below = 'div-comment' ;
}
?>
<< ? php echo esc_attr ( $tag ); ?> <?php comment_class( empty( $args['has_children'] ) ? '' : 'parent' ) ?> id="comment-<?php comment_ID() ?>">
< div class = " comment-body " >
< div class = " comment-meta commentmetadata " >
< div class = " comment-author vcard " >
< ? php echo get_avatar ( $comment , 128 ); ?>
2016-03-15 13:18:22 +00:00
< ? php printf ( wp_kses_post ( '<cite class="fn">%s</cite>' , 'storefront' ), get_comment_author_link () ); ?>
2016-01-20 16:02:53 +00:00
</ div >
< ? php if ( '0' == $comment -> comment_approved ) : ?>
2016-02-19 16:57:56 +00:00
< em class = " comment-awaiting-moderation " >< ? php esc_attr_e ( 'Your comment is awaiting moderation.' , 'storefront' ); ?> </em>
2016-01-20 16:02:53 +00:00
< br />
< ? php endif ; ?>
< a href = " <?php echo esc_url( htmlspecialchars( get_comment_link( $comment->comment_ID ) ) ); ?> " class = " comment-date " >
2016-07-27 19:40:14 +02:00
< ? php echo '<time datetime="' . get_comment_date ( 'c' ) . '">' . get_comment_date () . '</time>' ; ?>
2016-01-20 16:02:53 +00:00
</ a >
</ div >
< ? php if ( 'div' != $args [ 'style' ] ) : ?>
< div id = " div-comment-<?php comment_ID() ?> " class = " comment-content " >
< ? php endif ; ?>
2016-04-25 13:49:21 +01:00
< div class = " comment-text " >
2016-01-20 16:02:53 +00:00
< ? php comment_text (); ?>
2016-04-25 13:49:21 +01:00
</ div >
2016-01-20 16:02:53 +00:00
< div class = " reply " >
< ? php comment_reply_link ( array_merge ( $args , array ( 'add_below' => $add_below , 'depth' => $depth , 'max_depth' => $args [ 'max_depth' ] ) ) ); ?>
< ? php edit_comment_link ( __ ( 'Edit' , 'storefront' ), ' ' , '' ); ?>
</ div >
</ div >
< ? php if ( 'div' != $args [ 'style' ] ) : ?>
</ div >
< ? php endif ; ?>
< ? php
}
}
if ( ! function_exists ( 'storefront_footer_widgets' ) ) {
/**
2016-10-15 02:31:51 +02:00
* Display the footer widget regions .
2016-02-19 16:57:56 +00:00
*
2016-01-20 16:02:53 +00:00
* @ since 1.0 . 0
2016-10-08 02:23:22 +02:00
* @ return void
2016-01-20 16:02:53 +00:00
*/
function storefront_footer_widgets () {
2017-01-19 14:41:42 +00:00
$rows = intval ( apply_filters ( 'storefront_footer_widget_rows' , 1 ) );
$regions = intval ( apply_filters ( 'storefront_footer_widget_columns' , 4 ) );
2016-01-20 16:02:53 +00:00
2016-10-15 02:31:51 +02:00
for ( $row = 1 ; $row <= $rows ; $row ++ ) :
2016-01-20 16:02:53 +00:00
2016-10-15 02:31:51 +02:00
// Defines the number of active columns in this footer row.
2016-10-14 16:05:25 +02:00
for ( $region = $regions ; 0 < $region ; $region -- ) {
2016-10-14 21:30:29 +02:00
if ( is_active_sidebar ( 'footer-' . strval ( $region + $regions * ( $row - 1 ) ) ) ) {
$columns = $region ;
2016-10-12 23:25:51 +02:00
break ;
}
}
2016-01-20 16:02:53 +00:00
2016-10-15 02:31:51 +02:00
if ( isset ( $columns ) ) : ?>
< div class =< ? php echo '"footer-widgets row-' . strval ( $row ) . ' col-' . strval ( $columns ) . ' fix"' ; ?> ><?php
2016-01-20 16:02:53 +00:00
2016-10-15 02:31:51 +02:00
for ( $column = 1 ; $column <= $columns ; $column ++ ) :
2016-10-14 21:30:29 +02:00
$footer_n = $column + $regions * ( $row - 1 );
2016-01-20 16:02:53 +00:00
2016-10-14 21:30:29 +02:00
if ( is_active_sidebar ( 'footer-' . strval ( $footer_n ) ) ) : ?>
2016-01-20 16:02:53 +00:00
2016-10-14 21:30:29 +02:00
< div class = " block footer-widget-<?php echo strval( $column ); ?> " >
< ? php dynamic_sidebar ( 'footer-' . strval ( $footer_n ) ); ?>
2016-10-15 02:31:51 +02:00
</ div >< ? php
2016-01-20 16:02:53 +00:00
2016-10-15 02:31:51 +02:00
endif ;
2016-10-14 16:05:25 +02:00
endfor ; ?>
2016-01-20 16:02:53 +00:00
2016-10-15 02:31:51 +02:00
</ div ><!-- . footer - widgets . row -< ? php echo strval ( $row ); ?> --><?php
2016-01-20 16:02:53 +00:00
2016-10-15 02:31:51 +02:00
unset ( $columns );
endif ;
endfor ;
2016-01-20 16:02:53 +00:00
}
}
if ( ! function_exists ( 'storefront_credit' ) ) {
/**
* Display the theme credit
2016-02-19 16:57:56 +00:00
*
2016-01-20 16:02:53 +00:00
* @ since 1.0 . 0
* @ return void
*/
function storefront_credit () {
?>
< div class = " site-info " >
< ? php echo esc_html ( apply_filters ( 'storefront_copyright_text' , $content = '© ' . get_bloginfo ( 'name' ) . ' ' . date ( 'Y' ) ) ); ?>
< ? php if ( apply_filters ( 'storefront_credit_link' , true ) ) { ?>
2018-01-09 14:41:10 +00:00
< br /> < ? php echo '<a href="https://woocommerce.com" target="_blank" title="' . esc_attr__ ( 'WooCommerce - The Best eCommerce Platform for WordPress' , 'storefront' ) . '" rel="author">' . esc_html__ ( 'Built with Storefront & WooCommerce' , 'storefront' ) . '</a>' ?>
2016-01-20 16:02:53 +00:00
< ? php } ?>
</ div ><!-- . site - info -->
< ? php
}
}
if ( ! function_exists ( 'storefront_header_widget_region' ) ) {
/**
* Display header widget region
2016-02-19 16:57:56 +00:00
*
2016-01-20 16:02:53 +00:00
* @ since 1.0 . 0
*/
function storefront_header_widget_region () {
if ( is_active_sidebar ( 'header-1' ) ) {
?>
< div class = " header-widget-region " role = " complementary " >
< div class = " col-full " >
< ? php dynamic_sidebar ( 'header-1' ); ?>
</ div >
</ div >
< ? php
}
}
}
if ( ! function_exists ( 'storefront_site_branding' ) ) {
/**
2016-08-03 09:49:16 +01:00
* Site branding wrapper and display
2016-02-19 16:57:56 +00:00
*
2016-01-20 16:02:53 +00:00
* @ since 1.0 . 0
* @ return void
*/
2016-08-01 11:17:10 +01:00
function storefront_site_branding () {
?>
< div class = " site-branding " >
2016-08-03 09:49:16 +01:00
< ? php storefront_site_title_or_logo (); ?>
2016-08-01 11:17:10 +01:00
</ div >
< ? php
2016-01-20 16:02:53 +00:00
}
}
2016-08-03 09:49:16 +01:00
if ( ! function_exists ( 'storefront_site_title_or_logo' ) ) {
/**
* Display the site title or logo
*
2016-10-08 02:20:48 -03:00
* @ since 2.1 . 0
* @ param bool $echo Echo the string or return it .
* @ return string
2016-08-03 09:49:16 +01:00
*/
2016-10-08 02:20:48 -03:00
function storefront_site_title_or_logo ( $echo = true ) {
2016-08-03 09:49:16 +01:00
if ( function_exists ( 'the_custom_logo' ) && has_custom_logo () ) {
$logo = get_custom_logo ();
2018-02-02 22:49:14 +00:00
$html = is_front_page () ? '<h1 class="logo">' . $logo . '</h1>' : $logo ;
2016-08-03 09:49:16 +01:00
} elseif ( function_exists ( 'jetpack_has_site_logo' ) && jetpack_has_site_logo () ) {
2016-10-08 02:20:48 -03:00
// Copied from jetpack_the_site_logo() function.
$logo = site_logo () -> logo ;
$logo_id = get_theme_mod ( 'custom_logo' ); // Check for WP 4.5 Site Logo
$logo_id = $logo_id ? $logo_id : $logo [ 'id' ]; // Use WP Core logo if present, otherwise use Jetpack's.
$size = site_logo () -> theme_size ();
$html = sprintf ( '<a href="%1$s" class="site-logo-link" rel="home" itemprop="url">%2$s</a>' ,
esc_url ( home_url ( '/' ) ),
wp_get_attachment_image (
$logo_id ,
$size ,
false ,
array (
'class' => 'site-logo attachment-' . $size ,
'data-size' => $size ,
'itemprop' => 'logo'
)
)
);
$html = apply_filters ( 'jetpack_the_site_logo' , $html , $logo , $size );
2016-08-03 09:49:16 +01:00
} else {
2018-02-02 22:49:14 +00:00
$tag = is_front_page () ? 'h1' : 'div' ;
2016-08-03 09:49:16 +01:00
2016-10-08 02:20:48 -03:00
$html = '<' . esc_attr ( $tag ) . ' class="beta site-title"><a href="' . esc_url ( home_url ( '/' ) ) . '" rel="home">' . esc_html ( get_bloginfo ( 'name' ) ) . '</a></' . esc_attr ( $tag ) . '>' ;
2016-08-03 09:49:16 +01:00
2016-10-08 02:20:48 -03:00
if ( '' !== get_bloginfo ( 'description' ) ) {
$html .= '<p class="site-description">' . esc_html ( get_bloginfo ( 'description' , 'display' ) ) . '</p>' ;
2016-08-03 09:49:16 +01:00
}
}
2016-10-08 02:20:48 -03:00
if ( ! $echo ) {
return $html ;
}
echo $html ;
2016-08-03 09:49:16 +01:00
}
}
2016-01-20 16:02:53 +00:00
if ( ! function_exists ( 'storefront_primary_navigation' ) ) {
/**
* Display Primary Navigation
2016-02-19 16:57:56 +00:00
*
2016-01-20 16:02:53 +00:00
* @ since 1.0 . 0
* @ return void
*/
function storefront_primary_navigation () {
?>
2016-07-27 15:50:32 +02:00
< nav id = " site-navigation " class = " main-navigation " role = " navigation " aria - label = " <?php esc_html_e( 'Primary Navigation', 'storefront' ); ?> " >
2016-07-26 08:20:51 +02:00
< button class = " menu-toggle " aria - controls = " site-navigation " aria - expanded = " false " >< span >< ? php echo esc_attr ( apply_filters ( 'storefront_menu_toggle_text' , __ ( 'Menu' , 'storefront' ) ) ); ?> </span></button>
2016-01-20 16:02:53 +00:00
< ? php
wp_nav_menu (
array (
'theme_location' => 'primary' ,
'container_class' => 'primary-navigation' ,
)
);
wp_nav_menu (
array (
'theme_location' => 'handheld' ,
'container_class' => 'handheld-navigation' ,
)
);
?>
2016-07-27 15:50:32 +02:00
</ nav ><!-- #site-navigation -->
2016-01-20 16:02:53 +00:00
< ? php
}
}
if ( ! function_exists ( 'storefront_secondary_navigation' ) ) {
/**
* Display Secondary Navigation
2016-02-19 16:57:56 +00:00
*
2016-01-20 16:02:53 +00:00
* @ since 1.0 . 0
* @ return void
*/
function storefront_secondary_navigation () {
2016-06-23 05:46:21 -06:00
if ( has_nav_menu ( 'secondary' ) ) {
?>
2016-07-27 15:50:32 +02:00
< nav class = " secondary-navigation " role = " navigation " aria - label = " <?php esc_html_e( 'Secondary Navigation', 'storefront' ); ?> " >
2016-06-23 05:46:21 -06:00
< ? php
wp_nav_menu (
array (
'theme_location' => 'secondary' ,
'fallback_cb' => '' ,
)
);
?>
2016-07-27 15:50:32 +02:00
</ nav ><!-- #site-navigation -->
2016-06-23 05:46:21 -06:00
< ? php
}
2016-01-20 16:02:53 +00:00
}
}
if ( ! function_exists ( 'storefront_skip_links' ) ) {
/**
* Skip links
2016-02-19 16:57:56 +00:00
*
2016-01-20 16:02:53 +00:00
* @ since 1.4 . 1
* @ return void
*/
function storefront_skip_links () {
?>
2016-02-19 16:57:56 +00:00
< a class = " skip-link screen-reader-text " href = " #site-navigation " >< ? php esc_attr_e ( 'Skip to navigation' , 'storefront' ); ?> </a>
< a class = " skip-link screen-reader-text " href = " #content " >< ? php esc_attr_e ( 'Skip to content' , 'storefront' ); ?> </a>
2016-01-20 16:02:53 +00:00
< ? php
}
}
2017-01-23 17:54:58 +00:00
if ( ! function_exists ( 'storefront_homepage_header' ) ) {
/**
* Display the page header without the featured image
*
* @ since 1.0 . 0
*/
function storefront_homepage_header () {
2017-02-08 15:38:40 +00:00
edit_post_link ( __ ( 'Edit this section' , 'storefront' ), '' , '' , '' , 'button storefront-hero__button-edit' );
2017-01-23 17:54:58 +00:00
?>
< header class = " entry-header " >
< ? php
the_title ( '<h1 class="entry-title">' , '</h1>' );
?>
</ header ><!-- . entry - header -->
< ? php
}
}
2016-01-20 16:02:53 +00:00
if ( ! function_exists ( 'storefront_page_header' ) ) {
/**
2017-01-23 17:54:58 +00:00
* Display the page header
2016-02-19 16:57:56 +00:00
*
2016-01-20 16:02:53 +00:00
* @ since 1.0 . 0
*/
function storefront_page_header () {
?>
< header class = " entry-header " >
< ? php
storefront_post_thumbnail ( 'full' );
2016-05-26 07:57:50 +02:00
the_title ( '<h1 class="entry-title">' , '</h1>' );
2016-01-20 16:02:53 +00:00
?>
</ header ><!-- . entry - header -->
< ? php
}
}
if ( ! function_exists ( 'storefront_page_content' ) ) {
/**
2017-01-23 17:54:58 +00:00
* Display the post content
2016-02-19 16:57:56 +00:00
*
2016-01-20 16:02:53 +00:00
* @ since 1.0 . 0
*/
function storefront_page_content () {
?>
2016-05-26 07:57:50 +02:00
< div class = " entry-content " >
2016-01-20 16:02:53 +00:00
< ? php the_content (); ?>
< ? php
wp_link_pages ( array (
'before' => '<div class="page-links">' . __ ( 'Pages:' , 'storefront' ),
'after' => '</div>' ,
) );
?>
</ div ><!-- . entry - content -->
< ? php
}
}
if ( ! function_exists ( 'storefront_post_header' ) ) {
/**
* Display the post header with a link to the single post
2016-02-19 16:57:56 +00:00
*
2016-01-20 16:02:53 +00:00
* @ since 1.0 . 0
*/
2016-02-25 14:46:06 +00:00
function storefront_post_header () {
?>
2016-01-20 16:02:53 +00:00
< header class = " entry-header " >
< ? php
if ( is_single () ) {
storefront_posted_on ();
2016-05-26 07:57:50 +02:00
the_title ( '<h1 class="entry-title">' , '</h1>' );
2016-01-20 16:02:53 +00:00
} else {
if ( 'post' == get_post_type () ) {
storefront_posted_on ();
}
2016-07-28 14:27:12 +02:00
the_title ( sprintf ( '<h2 class="alpha entry-title"><a href="%s" rel="bookmark">' , esc_url ( get_permalink () ) ), '</a></h2>' );
2016-01-20 16:02:53 +00:00
}
?>
</ header ><!-- . entry - header -->
< ? php
}
}
if ( ! function_exists ( 'storefront_post_content' ) ) {
/**
* Display the post content with a link to the single post
2016-02-19 16:57:56 +00:00
*
2016-01-20 16:02:53 +00:00
* @ since 1.0 . 0
*/
function storefront_post_content () {
?>
2016-05-26 07:57:50 +02:00
< div class = " entry-content " >
2016-01-20 16:02:53 +00:00
< ? php
2016-10-03 11:13:18 +01:00
/**
* Functions hooked in to storefront_post_content_before action .
*
* @ hooked storefront_post_thumbnail - 10
*/
do_action ( 'storefront_post_content_before' );
2016-01-20 16:02:53 +00:00
the_content (
sprintf (
__ ( 'Continue reading %s' , 'storefront' ),
'<span class="screen-reader-text">' . get_the_title () . '</span>'
)
);
2016-10-03 11:13:18 +01:00
do_action ( 'storefront_post_content_after' );
2016-01-20 16:02:53 +00:00
wp_link_pages ( array (
'before' => '<div class="page-links">' . __ ( 'Pages:' , 'storefront' ),
'after' => '</div>' ,
) );
?>
</ div ><!-- . entry - content -->
< ? php
}
}
if ( ! function_exists ( 'storefront_post_meta' ) ) {
/**
* Display the post meta
2016-02-19 16:57:56 +00:00
*
2016-01-20 16:02:53 +00:00
* @ since 1.0 . 0
*/
function storefront_post_meta () {
?>
< aside class = " entry-meta " >
2016-02-19 16:57:56 +00:00
< ? php if ( 'post' == get_post_type () ) : // Hide category and tag text for pages on Search.
2016-01-20 16:02:53 +00:00
2016-02-05 09:55:25 +00:00
?>
2018-01-09 14:39:36 +00:00
< div class = " vcard author " >
2016-02-05 09:55:25 +00:00
< ? php
echo get_avatar ( get_the_author_meta ( 'ID' ), 128 );
echo '<div class="label">' . esc_attr ( __ ( 'Written by' , 'storefront' ) ) . '</div>' ;
2018-01-09 14:39:36 +00:00
echo sprintf ( '<a href="%1$s" class="url fn" rel="author">%2$s</a>' , esc_url ( get_author_posts_url ( get_the_author_meta ( 'ID' ) ) ), get_the_author () );
2016-02-05 09:55:25 +00:00
?>
</ div >
2016-01-20 16:02:53 +00:00
< ? php
/* translators: used between list items, there is a space after the comma */
$categories_list = get_the_category_list ( __ ( ', ' , 'storefront' ) );
2016-01-21 10:50:49 +00:00
if ( $categories_list ) : ?>
2016-02-05 09:55:25 +00:00
< div class = " cat-links " >
2016-01-20 16:02:53 +00:00
< ? php
2016-02-05 09:55:25 +00:00
echo '<div class="label">' . esc_attr ( __ ( 'Posted in' , 'storefront' ) ) . '</div>' ;
2016-01-20 16:02:53 +00:00
echo wp_kses_post ( $categories_list );
?>
2016-02-05 09:55:25 +00:00
</ div >
2016-02-19 16:57:56 +00:00
< ? php endif ; // End if categories. ?>
2016-01-20 16:02:53 +00:00
< ? php
/* translators: used between list items, there is a space after the comma */
$tags_list = get_the_tag_list ( '' , __ ( ', ' , 'storefront' ) );
if ( $tags_list ) : ?>
2016-02-05 09:55:25 +00:00
< div class = " tags-links " >
2016-01-20 16:02:53 +00:00
< ? php
2016-02-05 09:55:25 +00:00
echo '<div class="label">' . esc_attr ( __ ( 'Tagged' , 'storefront' ) ) . '</div>' ;
2016-01-20 16:02:53 +00:00
echo wp_kses_post ( $tags_list );
?>
2016-02-05 09:55:25 +00:00
</ div >
2016-02-19 16:57:56 +00:00
< ? php endif ; // End if $tags_list. ?>
2016-01-20 16:02:53 +00:00
2016-02-19 16:57:56 +00:00
< ? php endif ; // End if 'post' == get_post_type(). ?>
2016-01-20 16:02:53 +00:00
< ? php if ( ! post_password_required () && ( comments_open () || '0' != get_comments_number () ) ) : ?>
2016-03-01 20:32:55 +00:00
< div class = " comments-link " >
< ? php echo '<div class="label">' . esc_attr ( __ ( 'Comments' , 'storefront' ) ) . '</div>' ; ?>
< span class = " comments-link " >< ? php comments_popup_link ( __ ( 'Leave a comment' , 'storefront' ), __ ( '1 Comment' , 'storefront' ), __ ( '% Comments' , 'storefront' ) ); ?> </span>
</ div >
2016-01-20 16:02:53 +00:00
< ? php endif ; ?>
</ aside >
< ? php
}
}
if ( ! function_exists ( 'storefront_paging_nav' ) ) {
/**
* Display navigation to next / previous set of posts when applicable .
*/
function storefront_paging_nav () {
global $wp_query ;
$args = array (
'type' => 'list' ,
2016-04-11 15:16:11 -05:00
'next_text' => _x ( 'Next' , 'Next post' , 'storefront' ),
'prev_text' => _x ( 'Previous' , 'Previous post' , 'storefront' ),
2016-01-20 16:02:53 +00:00
);
the_posts_pagination ( $args );
}
}
if ( ! function_exists ( 'storefront_post_nav' ) ) {
/**
* Display navigation to next / previous post when applicable .
*/
function storefront_post_nav () {
$args = array (
2016-04-11 15:16:11 -05:00
'next_text' => '%title' ,
'prev_text' => '%title' ,
2016-01-20 16:02:53 +00:00
);
the_post_navigation ( $args );
}
}
if ( ! function_exists ( 'storefront_posted_on' ) ) {
/**
* Prints HTML with meta information for the current post - date / time and author .
*/
function storefront_posted_on () {
2016-05-26 07:57:50 +02:00
$time_string = '<time class="entry-date published updated" datetime="%1$s">%2$s</time>' ;
2016-01-20 16:02:53 +00:00
if ( get_the_time ( 'U' ) !== get_the_modified_time ( 'U' ) ) {
2016-05-26 07:57:50 +02:00
$time_string = '<time class="entry-date published" datetime="%1$s">%2$s</time> <time class="updated" datetime="%3$s">%4$s</time>' ;
2016-01-20 16:02:53 +00:00
}
$time_string = sprintf ( $time_string ,
esc_attr ( get_the_date ( 'c' ) ),
esc_html ( get_the_date () ),
esc_attr ( get_the_modified_date ( 'c' ) ),
esc_html ( get_the_modified_date () )
);
$posted_on = sprintf (
_x ( 'Posted on %s' , 'post date' , 'storefront' ),
'<a href="' . esc_url ( get_permalink () ) . '" rel="bookmark">' . $time_string . '</a>'
);
2016-02-22 15:22:16 +00:00
echo wp_kses ( apply_filters ( 'storefront_single_post_posted_on_html' , '<span class="posted-on">' . $posted_on . '</span>' , $posted_on ), array (
2016-02-23 16:21:49 +05:30
'span' => array (
'class' => array (),
),
2016-02-22 15:22:16 +00:00
'a' => array (
'href' => array (),
'title' => array (),
'rel' => array (),
),
'time' => array (
'datetime' => array (),
'class' => array (),
),
2016-02-25 14:46:06 +00:00
) );
2016-01-20 16:02:53 +00:00
}
}
if ( ! function_exists ( 'storefront_product_categories' ) ) {
/**
* Display Product Categories
* Hooked into the `homepage` action in the homepage template
2016-02-19 16:57:56 +00:00
*
2016-01-20 16:02:53 +00:00
* @ since 1.0 . 0
2016-02-25 14:46:06 +00:00
* @ param array $args the product section args .
2016-01-20 16:02:53 +00:00
* @ return void
*/
function storefront_product_categories ( $args ) {
2016-11-10 10:22:29 +00:00
if ( storefront_is_woocommerce_activated () ) {
2016-01-20 16:02:53 +00:00
$args = apply_filters ( 'storefront_product_categories_args' , array (
'limit' => 3 ,
'columns' => 3 ,
'child_categories' => 0 ,
'orderby' => 'name' ,
2016-02-09 17:26:28 +00:00
'title' => __ ( 'Shop by Category' , 'storefront' ),
2016-02-19 16:57:56 +00:00
) );
2016-01-20 16:02:53 +00:00
2017-02-15 13:40:59 +00:00
$shortcode_content = storefront_do_shortcode ( 'product_categories' , apply_filters ( 'storefront_product_categories_shortcode_args' , array (
2016-02-25 14:46:06 +00:00
'number' => intval ( $args [ 'limit' ] ),
'columns' => intval ( $args [ 'columns' ] ),
'orderby' => esc_attr ( $args [ 'orderby' ] ),
'parent' => esc_attr ( $args [ 'child_categories' ] ),
2017-02-09 18:39:28 +00:00
) ) );
2016-01-20 16:02:53 +00:00
2017-02-15 13:40:59 +00:00
/**
* Only display the section if the shortcode returns product categories
*/
if ( false !== strpos ( $shortcode_content , 'product-category' ) ) {
2017-05-17 15:31:54 +02:00
echo '<section class="storefront-product-section storefront-product-categories" aria-label="' . esc_attr__ ( 'Product Categories' , 'storefront' ) . '">' ;
2017-02-15 13:40:59 +00:00
do_action ( 'storefront_homepage_before_product_categories' );
echo '<h2 class="section-title">' . wp_kses_post ( $args [ 'title' ] ) . '</h2>' ;
do_action ( 'storefront_homepage_after_product_categories_title' );
2017-05-30 10:56:22 +01:00
echo $shortcode_content ;
2016-01-20 16:02:53 +00:00
2017-02-15 13:40:59 +00:00
do_action ( 'storefront_homepage_after_product_categories' );
echo '</section>' ;
}
2016-01-20 16:02:53 +00:00
}
}
}
if ( ! function_exists ( 'storefront_recent_products' ) ) {
/**
* Display Recent Products
* Hooked into the `homepage` action in the homepage template
2016-02-19 16:57:56 +00:00
*
2016-01-20 16:02:53 +00:00
* @ since 1.0 . 0
2016-02-25 14:46:06 +00:00
* @ param array $args the product section args .
2016-01-20 16:02:53 +00:00
* @ return void
*/
function storefront_recent_products ( $args ) {
2016-11-10 10:22:29 +00:00
if ( storefront_is_woocommerce_activated () ) {
2016-01-20 16:02:53 +00:00
$args = apply_filters ( 'storefront_recent_products_args' , array (
'limit' => 4 ,
'columns' => 4 ,
2016-02-09 17:26:28 +00:00
'title' => __ ( 'New In' , 'storefront' ),
2016-02-19 16:57:56 +00:00
) );
2016-01-20 16:02:53 +00:00
2017-06-01 09:01:58 +01:00
$shortcode_content = storefront_do_shortcode ( 'recent_products' , apply_filters ( 'storefront_recent_products_shortcode_args' , array (
2017-02-15 13:40:59 +00:00
'per_page' => intval ( $args [ 'limit' ] ),
'columns' => intval ( $args [ 'columns' ] ),
2017-06-01 09:01:58 +01:00
) ) );
2016-01-20 16:02:53 +00:00
2017-02-15 13:40:59 +00:00
/**
* Only display the section if the shortcode returns products
*/
if ( false !== strpos ( $shortcode_content , 'product' ) ) {
2016-01-20 16:02:53 +00:00
2017-05-17 15:31:54 +02:00
echo '<section class="storefront-product-section storefront-recent-products" aria-label="' . esc_attr__ ( 'Recent Products' , 'storefront' ) . '">' ;
2016-01-20 16:02:53 +00:00
2017-02-15 13:40:59 +00:00
do_action ( 'storefront_homepage_before_recent_products' );
2016-01-20 16:02:53 +00:00
2017-02-15 13:40:59 +00:00
echo '<h2 class="section-title">' . wp_kses_post ( $args [ 'title' ] ) . '</h2>' ;
do_action ( 'storefront_homepage_after_recent_products_title' );
2017-05-30 10:56:22 +01:00
echo $shortcode_content ;
2017-02-15 13:40:59 +00:00
do_action ( 'storefront_homepage_after_recent_products' );
2016-01-20 16:02:53 +00:00
2017-02-15 13:40:59 +00:00
echo '</section>' ;
2016-01-20 16:02:53 +00:00
2017-02-15 13:40:59 +00:00
}
2016-01-20 16:02:53 +00:00
}
}
}
if ( ! function_exists ( 'storefront_featured_products' ) ) {
/**
* Display Featured Products
* Hooked into the `homepage` action in the homepage template
2016-02-19 16:57:56 +00:00
*
2016-01-20 16:02:53 +00:00
* @ since 1.0 . 0
2016-02-25 14:46:06 +00:00
* @ param array $args the product section args .
2016-01-20 16:02:53 +00:00
* @ return void
*/
function storefront_featured_products ( $args ) {
2016-11-10 10:22:29 +00:00
if ( storefront_is_woocommerce_activated () ) {
2016-01-20 16:02:53 +00:00
$args = apply_filters ( 'storefront_featured_products_args' , array (
2016-02-19 16:57:56 +00:00
'limit' => 4 ,
'columns' => 4 ,
'orderby' => 'date' ,
'order' => 'desc' ,
'title' => __ ( 'We Recommend' , 'storefront' ),
) );
2016-01-20 16:02:53 +00:00
2017-06-01 09:01:58 +01:00
$shortcode_content = storefront_do_shortcode ( 'featured_products' , apply_filters ( 'storefront_featured_products_shortcode_args' , array (
2016-02-25 14:46:06 +00:00
'per_page' => intval ( $args [ 'limit' ] ),
'columns' => intval ( $args [ 'columns' ] ),
'orderby' => esc_attr ( $args [ 'orderby' ] ),
'order' => esc_attr ( $args [ 'order' ] ),
2017-06-01 09:01:58 +01:00
) ) );
2016-01-20 16:02:53 +00:00
2017-02-15 13:40:59 +00:00
/**
* Only display the section if the shortcode returns products
*/
if ( false !== strpos ( $shortcode_content , 'product' ) ) {
2017-05-17 15:31:54 +02:00
echo '<section class="storefront-product-section storefront-featured-products" aria-label="' . esc_attr__ ( 'Featured Products' , 'storefront' ) . '">' ;
2017-02-15 13:40:59 +00:00
do_action ( 'storefront_homepage_before_featured_products' );
echo '<h2 class="section-title">' . wp_kses_post ( $args [ 'title' ] ) . '</h2>' ;
do_action ( 'storefront_homepage_after_featured_products_title' );
2017-05-30 10:56:22 +01:00
echo $shortcode_content ;
2017-02-15 13:40:59 +00:00
do_action ( 'storefront_homepage_after_featured_products' );
echo '</section>' ;
2016-01-20 16:02:53 +00:00
2017-02-15 13:40:59 +00:00
}
2016-01-20 16:02:53 +00:00
}
}
}
if ( ! function_exists ( 'storefront_popular_products' ) ) {
/**
* Display Popular Products
* Hooked into the `homepage` action in the homepage template
2016-02-19 16:57:56 +00:00
*
2016-01-20 16:02:53 +00:00
* @ since 1.0 . 0
2016-02-25 14:46:06 +00:00
* @ param array $args the product section args .
2016-01-20 16:02:53 +00:00
* @ return void
*/
function storefront_popular_products ( $args ) {
2016-11-10 10:22:29 +00:00
if ( storefront_is_woocommerce_activated () ) {
2016-01-20 16:02:53 +00:00
$args = apply_filters ( 'storefront_popular_products_args' , array (
2016-02-19 16:57:56 +00:00
'limit' => 4 ,
'columns' => 4 ,
'title' => __ ( 'Fan Favorites' , 'storefront' ),
) );
2016-01-20 16:02:53 +00:00
2017-06-01 09:01:58 +01:00
$shortcode_content = storefront_do_shortcode ( 'top_rated_products' , apply_filters ( 'storefront_popular_products_shortcode_args' , array (
2017-02-15 13:40:59 +00:00
'per_page' => intval ( $args [ 'limit' ] ),
'columns' => intval ( $args [ 'columns' ] ),
2017-06-01 09:01:58 +01:00
) ) );
2016-01-20 16:02:53 +00:00
2017-02-15 13:40:59 +00:00
/**
* Only display the section if the shortcode returns products
*/
if ( false !== strpos ( $shortcode_content , 'product' ) ) {
2016-01-20 16:02:53 +00:00
2017-05-17 15:31:54 +02:00
echo '<section class="storefront-product-section storefront-popular-products" aria-label="' . esc_attr__ ( 'Popular Products' , 'storefront' ) . '">' ;
2016-01-20 16:02:53 +00:00
2017-02-15 13:40:59 +00:00
do_action ( 'storefront_homepage_before_popular_products' );
2016-01-20 16:02:53 +00:00
2017-02-15 13:40:59 +00:00
echo '<h2 class="section-title">' . wp_kses_post ( $args [ 'title' ] ) . '</h2>' ;
do_action ( 'storefront_homepage_after_popular_products_title' );
2017-05-30 10:56:22 +01:00
echo $shortcode_content ;
2016-01-20 16:02:53 +00:00
2017-02-15 13:40:59 +00:00
do_action ( 'storefront_homepage_after_popular_products' );
2016-01-20 16:02:53 +00:00
2017-02-15 13:40:59 +00:00
echo '</section>' ;
}
2016-01-20 16:02:53 +00:00
}
}
}
if ( ! function_exists ( 'storefront_on_sale_products' ) ) {
/**
* Display On Sale Products
* Hooked into the `homepage` action in the homepage template
2016-02-25 14:46:06 +00:00
*
* @ param array $args the product section args .
2016-01-20 16:02:53 +00:00
* @ since 1.0 . 0
* @ return void
*/
function storefront_on_sale_products ( $args ) {
2016-11-10 10:22:29 +00:00
if ( storefront_is_woocommerce_activated () ) {
2016-01-20 16:02:53 +00:00
$args = apply_filters ( 'storefront_on_sale_products_args' , array (
2016-02-19 16:57:56 +00:00
'limit' => 4 ,
'columns' => 4 ,
'title' => __ ( 'On Sale' , 'storefront' ),
) );
2016-01-20 16:02:53 +00:00
2017-06-01 09:01:58 +01:00
$shortcode_content = storefront_do_shortcode ( 'sale_products' , apply_filters ( 'storefront_on_sale_products_shortcode_args' , array (
2017-02-15 13:40:59 +00:00
'per_page' => intval ( $args [ 'limit' ] ),
'columns' => intval ( $args [ 'columns' ] ),
2017-06-01 09:01:58 +01:00
) ) );
2016-01-20 16:02:53 +00:00
2017-02-15 13:40:59 +00:00
/**
* Only display the section if the shortcode returns products
*/
if ( false !== strpos ( $shortcode_content , 'product' ) ) {
2016-01-20 16:02:53 +00:00
2017-05-17 15:31:54 +02:00
echo '<section class="storefront-product-section storefront-on-sale-products" aria-label="' . esc_attr__ ( 'On Sale Products' , 'storefront' ) . '">' ;
2016-01-20 16:02:53 +00:00
2017-02-15 13:40:59 +00:00
do_action ( 'storefront_homepage_before_on_sale_products' );
2016-01-20 16:02:53 +00:00
2017-02-15 13:40:59 +00:00
echo '<h2 class="section-title">' . wp_kses_post ( $args [ 'title' ] ) . '</h2>' ;
2016-01-20 16:02:53 +00:00
2017-02-15 13:40:59 +00:00
do_action ( 'storefront_homepage_after_on_sale_products_title' );
2016-01-20 16:02:53 +00:00
2017-05-30 10:56:22 +01:00
echo $shortcode_content ;
2017-02-15 13:40:59 +00:00
do_action ( 'storefront_homepage_after_on_sale_products' );
echo '</section>' ;
}
2016-01-20 16:02:53 +00:00
}
}
}
2016-03-13 15:47:15 -05:00
if ( ! function_exists ( 'storefront_best_selling_products' ) ) {
/**
* Display Best Selling Products
* Hooked into the `homepage` action in the homepage template
*
2016-03-15 13:23:59 +00:00
* @ since 2.0 . 0
2016-03-13 15:47:15 -05:00
* @ param array $args the product section args .
* @ return void
*/
function storefront_best_selling_products ( $args ) {
2016-11-10 10:22:29 +00:00
if ( storefront_is_woocommerce_activated () ) {
2017-02-15 13:40:59 +00:00
2016-03-13 15:47:15 -05:00
$args = apply_filters ( 'storefront_best_selling_products_args' , array (
2016-03-15 13:23:59 +00:00
'limit' => 4 ,
'columns' => 4 ,
'title' => esc_attr__ ( 'Best Sellers' , 'storefront' ),
2016-03-13 15:47:15 -05:00
) );
2017-02-15 13:40:59 +00:00
2017-06-01 09:01:58 +01:00
$shortcode_content = storefront_do_shortcode ( 'best_selling_products' , apply_filters ( 'storefront_best_selling_products_shortcode_args' , array (
2016-03-13 15:47:15 -05:00
'per_page' => intval ( $args [ 'limit' ] ),
'columns' => intval ( $args [ 'columns' ] ),
2017-06-01 09:01:58 +01:00
) ) );
2017-02-15 13:40:59 +00:00
/**
* Only display the section if the shortcode returns products
*/
if ( false !== strpos ( $shortcode_content , 'product' ) ) {
2017-05-17 15:31:54 +02:00
echo '<section class="storefront-product-section storefront-best-selling-products" aria-label="' . esc_attr__ ( 'Best Selling Products' , 'storefront' ) . '">' ;
2017-02-15 13:40:59 +00:00
do_action ( 'storefront_homepage_before_best_selling_products' );
echo '<h2 class="section-title">' . wp_kses_post ( $args [ 'title' ] ) . '</h2>' ;
do_action ( 'storefront_homepage_after_best_selling_products_title' );
2017-05-30 10:56:22 +01:00
echo $shortcode_content ;
2017-02-15 13:40:59 +00:00
do_action ( 'storefront_homepage_after_best_selling_products' );
echo '</section>' ;
}
2016-03-13 15:47:15 -05:00
}
}
}
2016-01-20 16:02:53 +00:00
if ( ! function_exists ( 'storefront_homepage_content' ) ) {
/**
* Display homepage content
* Hooked into the `homepage` action in the homepage template
2016-02-19 16:57:56 +00:00
*
2016-01-20 16:02:53 +00:00
* @ since 1.0 . 0
* @ return void
*/
function storefront_homepage_content () {
2016-02-04 13:16:31 +00:00
while ( have_posts () ) {
the_post ();
2016-01-20 16:02:53 +00:00
2017-01-23 17:54:58 +00:00
get_template_part ( 'content' , 'homepage' );
2016-01-20 16:02:53 +00:00
2016-02-04 13:16:31 +00:00
} // end of the loop.
2016-01-20 16:02:53 +00:00
}
}
if ( ! function_exists ( 'storefront_social_icons' ) ) {
/**
* Display social icons
* If the subscribe and connect plugin is active , display the icons .
2016-02-19 16:57:56 +00:00
*
2016-01-20 16:02:53 +00:00
* @ link http :// wordpress . org / plugins / subscribe - and - connect /
* @ since 1.0 . 0
*/
function storefront_social_icons () {
if ( class_exists ( 'Subscribe_And_Connect' ) ) {
echo '<div class="subscribe-and-connect-connect">' ;
subscribe_and_connect_connect ();
echo '</div>' ;
}
}
}
if ( ! function_exists ( 'storefront_get_sidebar' ) ) {
/**
* Display storefront sidebar
2016-02-19 16:57:56 +00:00
*
2016-01-20 16:02:53 +00:00
* @ uses get_sidebar ()
* @ since 1.0 . 0
*/
function storefront_get_sidebar () {
get_sidebar ();
}
}
if ( ! function_exists ( 'storefront_post_thumbnail' ) ) {
/**
* Display post thumbnail
2016-02-19 16:57:56 +00:00
*
2016-01-20 16:02:53 +00:00
* @ var $size thumbnail size . thumbnail | medium | large | full | $custom
* @ uses has_post_thumbnail ()
* @ uses the_post_thumbnail
2016-02-19 16:57:56 +00:00
* @ param string $size the post thumbnail size .
2016-01-20 16:02:53 +00:00
* @ since 1.5 . 0
*/
2016-10-03 11:13:18 +01:00
function storefront_post_thumbnail ( $size = 'full' ) {
2016-01-20 16:02:53 +00:00
if ( has_post_thumbnail () ) {
2016-05-26 07:57:50 +02:00
the_post_thumbnail ( $size );
2016-01-20 16:02:53 +00:00
}
}
2016-02-19 16:57:56 +00:00
}
2016-03-18 12:10:14 +00:00
2016-07-12 08:37:41 +02:00
if ( ! function_exists ( 'storefront_primary_navigation_wrapper' ) ) {
/**
* The primary navigation wrapper
*/
function storefront_primary_navigation_wrapper () {
2018-04-13 16:48:52 +01:00
echo '<div class="storefront-primary-navigation"><div class="col-full">' ;
2016-07-12 08:37:41 +02:00
}
2016-03-18 12:10:14 +00:00
}
2016-07-12 08:37:41 +02:00
if ( ! function_exists ( 'storefront_primary_navigation_wrapper_close' ) ) {
/**
* The primary navigation wrapper close
*/
function storefront_primary_navigation_wrapper_close () {
2018-04-13 16:48:52 +01:00
echo '</div></div>' ;
}
}
if ( ! function_exists ( 'storefront_header_container' ) ) {
/**
* The header container
*/
function storefront_header_container () {
echo '<div class="col-full">' ;
}
}
if ( ! function_exists ( 'storefront_header_container_close' ) ) {
/**
* The header container close
*/
function storefront_header_container_close () {
2016-07-26 08:20:51 +02:00
echo '</div>' ;
2016-07-12 08:37:41 +02:00
}
2016-03-18 12:10:14 +00:00
}