__( 'Primary Menu', 'generate' ),
) );
/**
* Enable support for Post Formats
*/
add_theme_support( 'post-formats', array( 'aside', 'image', 'video', 'quote', 'link', 'status' ) );
/**
* Enable support for WooCommerce
*/
add_theme_support( 'woocommerce' );
/**
* Enable support for
tag
*/
add_theme_support( 'title-tag' );
/*
* Add HTML5 theme support
*/
add_theme_support( 'html5', array(
'search-form', 'comment-form', 'comment-list', 'gallery', 'caption'
) );
/**
* Set the content width to something large
* We set a more accurate width in generate_smart_content_width()
*/
global $content_width;
if ( ! isset( $content_width ) )
$content_width = 1200; /* pixels */
/*
* This theme styles the visual editor to resemble the theme style,
*/
add_editor_style( 'inc/css/editor-style.css' );
}
endif; // generate_setup
/**
* Set default options
*/
function generate_get_defaults()
{
$generate_defaults = array(
'hide_title' => '',
'hide_tagline' => '',
'logo' => '',
'container_width' => '1100',
'header_layout_setting' => 'fluid-header',
'nav_alignment_setting' => 'left',
'header_alignment_setting' => 'left',
'nav_layout_setting' => 'fluid-nav',
'nav_position_setting' => 'nav-below-header',
'nav_search' => 'disable',
'content_layout_setting' => 'separate-containers',
'layout_setting' => 'right-sidebar',
'blog_layout_setting' => 'right-sidebar',
'single_layout_setting' => 'right-sidebar',
'post_content' => 'full',
'footer_layout_setting' => 'fluid-footer',
'footer_widget_setting' => '3',
'background_color' => '#efefef',
'text_color' => '#3a3a3a',
'link_color' => '#1e73be',
'link_color_hover' => '#000000',
'link_color_visited' => '',
);
return apply_filters( 'generate_option_defaults', $generate_defaults );
}
/**
* Register widgetized area and update sidebar with default widgets
*/
add_action( 'widgets_init', 'generate_widgets_init' );
function generate_widgets_init() {
register_sidebar( array(
'name' => __( 'Right Sidebar', 'generate' ),
'id' => 'sidebar-1',
'before_widget' => '',
'before_title' => apply_filters( 'generate_start_widget_title', '' ),
) );
register_sidebar( array(
'name' => __( 'Left Sidebar', 'generate' ),
'id' => 'sidebar-2',
'before_widget' => '',
'before_title' => apply_filters( 'generate_start_widget_title', '' ),
) );
register_sidebar( array(
'name' => __( 'Header', 'generate' ),
'id' => 'header',
'before_widget' => '',
'before_title' => apply_filters( 'generate_start_widget_title', '' ),
) );
register_sidebar( array(
'name' => __( 'Footer Widget 1', 'generate' ),
'id' => 'footer-1',
'before_widget' => '',
'before_title' => apply_filters( 'generate_start_widget_title', '' ),
) );
register_sidebar( array(
'name' => __( 'Footer Widget 2', 'generate' ),
'id' => 'footer-2',
'before_widget' => '',
'before_title' => apply_filters( 'generate_start_widget_title', '' ),
) );
register_sidebar( array(
'name' => __( 'Footer Widget 3', 'generate' ),
'id' => 'footer-3',
'before_widget' => '',
'before_title' => apply_filters( 'generate_start_widget_title', '' ),
) );
register_sidebar( array(
'name' => __( 'Footer Widget 4', 'generate' ),
'id' => 'footer-4',
'before_widget' => '',
'before_title' => apply_filters( 'generate_start_widget_title', '' ),
) );
register_sidebar( array(
'name' => __( 'Footer Widget 5', 'generate' ),
'id' => 'footer-5',
'before_widget' => '',
'before_title' => apply_filters( 'generate_start_widget_title', '' ),
) );
}
/**
* Custom template tags for this theme.
*/
require get_template_directory() . '/inc/template-tags.php';
/**
* Custom functions that act independently of the theme templates.
*/
require get_template_directory() . '/inc/extras.php';
/**
* Build the navigation
*/
require get_template_directory() . '/inc/navigation.php';
/**
* Customizer additions.
*/
require get_template_directory() . '/inc/customizer.php';
/**
* Load element classes
*/
require get_template_directory() . '/inc/element-classes.php';
/**
* Load metaboxes
*/
require get_template_directory() . '/inc/metaboxes.php';
/**
* Load options
*/
require get_template_directory() . '/inc/options.php';
/**
* Load add-on options
*/
require get_template_directory() . '/inc/add-ons.php';
/**
* Load WooCommerce compatibility
*/
require get_template_directory() . '/inc/woocommerce.php';
/**
* Enqueue scripts and styles
*/
add_action( 'wp_enqueue_scripts', 'generate_scripts' );
function generate_scripts()
{
$generate_settings = wp_parse_args(
get_option( 'generate_settings', array() ),
generate_get_defaults()
);
// CSS
wp_enqueue_style( 'generate-style-grid', get_template_directory_uri() . '/css/unsemantic-grid.min.css', false, GENERATE_VERSION, 'all' );
wp_enqueue_style( 'generate-style', get_template_directory_uri() . '/style.css', false, GENERATE_VERSION, 'all' );
wp_enqueue_style( 'generate-mobile-style', get_template_directory_uri() . '/css/mobile.min.css', false, GENERATE_VERSION, 'all' );
wp_add_inline_style( 'generate-style', generate_base_css() );
if ( is_child_theme() ) :
wp_enqueue_style( 'generate-child', get_stylesheet_uri(), true, filemtime( get_stylesheet_directory() . '/style.css' ), 'all' );
endif;
wp_enqueue_style( 'fontawesome', get_template_directory_uri() . '/css/font-awesome.min.css', false, '4.5.0', 'all' );
// JS
wp_enqueue_script( 'jquery' );
wp_enqueue_script( 'generate-navigation', get_template_directory_uri() . '/js/navigation.min.js', array( 'jquery' ), GENERATE_VERSION, true );
wp_enqueue_script( 'generate-dropdown', get_template_directory_uri() . '/js/dropdown.min.js', array( 'jquery' ), GENERATE_VERSION, true );
if ( 'enable' == $generate_settings['nav_search'] ) {
wp_enqueue_script( 'generate-navigation-search', get_template_directory_uri() . '/js/navigation-search.min.js', array('jquery'), GENERATE_VERSION, true );
}
if ( 'nav-left-sidebar' == $generate_settings['nav_position_setting'] || 'nav-right-sidebar' == $generate_settings['nav_position_setting'] ) {
wp_enqueue_script( 'generate-move-navigation', get_template_directory_uri() . '/js/move-navigation.min.js', array('jquery'), GENERATE_VERSION, true );
}
if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
wp_enqueue_script( 'comment-reply' );
}
}
/**
* Get the layout for the current page
*/
function generate_get_layout()
{
// Get current post
global $post;
// Get Customizer options
$generate_settings = wp_parse_args(
get_option( 'generate_settings', array() ),
generate_get_defaults()
);
// Set up the layout variable for pages
$layout = $generate_settings['layout_setting'];
// Get the individual page/post sidebar metabox value
$layout_meta = ( isset( $post ) ) ? get_post_meta( $post->ID, '_generate-sidebar-layout-meta', true ) : '';
// Set up BuddyPress variable
$buddypress = false;
if ( function_exists( 'is_buddypress' ) ) :
$buddypress = ( is_buddypress() ) ? true : false;
endif;
// If we're on the single post page
// And if we're not on a BuddyPress page - fixes a bug where BP thinks is_single() is true
if ( is_single() && ! $buddypress ) :
$layout = null;
$layout = $generate_settings['single_layout_setting'];
endif;
// If the metabox is set, use it instead of the global settings
if ( '' !== $layout_meta && false !== $layout_meta ) :
$layout = $layout_meta;
endif;
// If we're on the blog, archive, attachment etc..
if ( is_home() || is_archive() || is_search() || is_attachment() || is_tax() ) :
$layout = null;
$layout = $generate_settings['blog_layout_setting'];
endif;
// Finally, return the layout
return apply_filters( 'generate_sidebar_layout', $layout );
}
/**
* Get the footer widgets for the current page
*/
function generate_get_footer_widgets()
{
// Get current post
global $post;
// Get Customizer options
$generate_settings = wp_parse_args(
get_option( 'generate_settings', array() ),
generate_get_defaults()
);
// Set up the footer widget variable
$widgets = $generate_settings['footer_widget_setting'];
// Get the individual footer widget metabox value
$widgets_meta = ( isset( $post ) ) ? get_post_meta( $post->ID, '_generate-footer-widget-meta', true ) : '';
// If we're not on a single page or post, the metabox hasn't been set
if ( ! is_singular() ) :
$widgets_meta = '';
endif;
// If we have a metabox option set, use it
if ( '' !== $widgets_meta && false !== $widgets_meta ) :
$widgets = $widgets_meta;
endif;
// Finally, return the layout
return apply_filters( 'generate_footer_widgets', $widgets );
}
/**
* Construct the sidebars
* @since 0.1
*/
add_action('generate_sidebars','generate_construct_sidebars');
function generate_construct_sidebars()
{
// Get the layout
$layout = generate_get_layout();
// When to show the right sidebar
$rs = array('right-sidebar','both-sidebars','both-right','both-left');
// When to show the left sidebar
$ls = array('left-sidebar','both-sidebars','both-right','both-left');
// If left sidebar, show it
if ( in_array( $layout, $ls ) ) :
get_sidebar('left');
endif;
// If right sidebar, show it
if ( in_array( $layout, $rs ) ) :
get_sidebar();
endif;
}
add_action('generate_credits','generate_add_footer_info');
function generate_add_footer_info()
{
?>
©
· ·
section using the Theme Customizer
* @since 0.1
*/
function generate_base_css()
{
$generate_settings = wp_parse_args(
get_option( 'generate_settings', array() ),
generate_get_defaults()
);
// Start the magic
$visual_css = array (
// Body CSS
'body' => array(
'background-color' => $generate_settings['background_color'],
'color' => $generate_settings['text_color']
),
// Link CSS
'a, a:visited' => array(
'color' => $generate_settings['link_color'],
'text-decoration' => 'none'
),
// Visited link color if specified
'a:visited' => array(
'color' => ( !empty( $generate_settings['link_color_visited'] ) ) ? $generate_settings['link_color_visited'] : null,
),
// Link hover
'a:hover, a:focus, a:active' => array(
'color' => $generate_settings['link_color_hover'],
'text-decoration' => null
),
// Grid container
'body .grid-container' => array(
'max-width' => $generate_settings['container_width'] . 'px'
)
);
// Output the above CSS
$output = '';
foreach($visual_css as $k => $properties) {
if(!count($properties))
continue;
$temporary_output = $k . ' {';
$elements_added = 0;
foreach($properties as $p => $v) {
if(empty($v))
continue;
$elements_added++;
$temporary_output .= $p . ': ' . $v . '; ';
}
$temporary_output .= "}";
if($elements_added > 0)
$output .= $temporary_output;
}
$output = str_replace(array("\r", "\n"), '', $output);
return $output;
}
/**
* Add viewport to wp_head
* @since 1.1.0
*/
add_action('wp_head','generate_add_viewport');
function generate_add_viewport()
{
echo '';
}
/**
* Add compatibility for IE8 and lower
* @since 1.1.9
*/
add_action('wp_head','generate_ie_compatibility');
function generate_ie_compatibility()
{
?>
element
* @since 1.3.15
*/
function generate_body_schema()
{
// Set up blog variable
$blog = ( is_home() || is_archive() || is_attachment() || is_tax() || is_single() ) ? true : false;
// Set up default itemtype
$itemtype = 'WebPage';
// Get itemtype for the blog
$itemtype = ( $blog ) ? 'Blog' : $itemtype;
// Get itemtype for search results
$itemtype = ( is_search() ) ? 'SearchResultsPage' : $itemtype;
// Get the result
$result = apply_filters( 'generate_body_itemtype', $itemtype );
// Return our HTML
echo "itemtype='http://schema.org/$result' itemscope='itemscope'";
}
endif;
if ( ! function_exists( 'generate_article_schema' ) ) :
/**
* Figure out which schema tags to apply to the element
* The function determines the itemtype: generate_article_schema( 'BlogPosting' )
* @since 1.3.15
*/
function generate_article_schema( $type = 'CreativeWork' )
{
// Get the itemtype
$itemtype = apply_filters( 'generate_article_itemtype', $type );
// Print the results
echo "itemtype='http://schema.org/$itemtype' itemscope='itemscope'";
}
endif;
if ( ! function_exists( 'generate_show_excerpt' ) ) :
/**
* Figure out if we should show the blog excerpts or full posts
* @since 1.3.15
*/
function generate_show_excerpt()
{
// Get current post
global $post;
// Get Customizer settings
$generate_settings = wp_parse_args(
get_option( 'generate_settings', array() ),
generate_get_defaults()
);
// Check to see if the more tag is being used
$more_tag = apply_filters( 'generate_more_tag', @strpos( $post->post_content, '' ) );
// Check the post format
$format = ( false !== get_post_format() ) ? get_post_format() : 'standard';
// Get the excerpt setting from the Customizer
$show_excerpt = ( 'excerpt' == $generate_settings['post_content'] ) ? true : false;
// If our post format isn't standard, show the full content
$show_excerpt = ( 'standard' !== $format ) ? false : $show_excerpt;
// If the more tag is found, show the full content
$show_excerpt = ( $more_tag ) ? false : $show_excerpt;
// If we're on a search results page, show the excerpt
$show_excerpt = ( is_search() ) ? true : $show_excerpt;
// Return our value
return apply_filters( 'generate_show_excerpt', $show_excerpt );
}
endif;
if ( ! function_exists( 'generate_show_title' ) ) :
/**
* Check to see if we should show our page/post title or not
* @since 1.3.18
*/
function generate_show_title()
{
return apply_filters( 'generate_show_title', true );
}
endif;