switched over to genesis_setup hook for functions.php, moved function defs to trestle-functions.php

This commit is contained in:
Mickey Kay
2013-11-07 14:15:57 -08:00
parent 6b098b0055
commit fd863f19a6
7 changed files with 640 additions and 288 deletions
+107
View File
@@ -0,0 +1,107 @@
<?php
/*===========================================
* Trestle Custom Theme Settings
*
* Modified from: http://www.billerickson.net/genesis-theme-options/
===========================================*/
/**
* Register Defaults
*
* @param array $defaults
* @return array modified defaults
*
*/
function trestle_custom_defaults( $defaults ) {
$defaults['auto_nav'] = '0';
$defaults['include_home_link'] = '1';
$defaults['nav_extras'] = '1';
return $defaults;
}
add_filter( 'genesis_theme_settings_defaults', 'trestle_custom_defaults' );
/**
* Sanitization
*/
function trestle_register_social_sanitization_filters() {
genesis_add_option_filter(
'no_html',
GENESIS_SETTINGS_FIELD,
array(
'auto_nav',
'include_home_link',
)
);
genesis_add_option_filter(
'safe_html',
GENESIS_SETTINGS_FIELD,
array(
'footer_text',
)
);
}
add_action( 'genesis_settings_sanitizer_init', 'trestle_register_social_sanitization_filters' );
/**
* Register Metabox
*
* @param string $_genesis_theme_settings_pagehook
*/
function trestle_register_settings_box( $_genesis_theme_settings_pagehook ) {
global $_genesis_admin_settings;
// Remove default Genesis nav metabox
remove_meta_box('genesis-theme-settings-nav', $_genesis_admin_settings->pagehook, 'main');
// Call our own custom nav metabox which combines our own settings with Genesis'
add_meta_box('mm-navigation-settings', __( 'Navigation', 'trestle' ), 'trestle_navigation_settings_box', $_genesis_theme_settings_pagehook, 'main', 'high');
}
add_action('genesis_theme_settings_metaboxes', 'trestle_register_settings_box');
/**
* Create Navigation Metabox
*/
function trestle_navigation_settings_box() {
?>
<h4><?php _e( 'Primary Navigation Options', 'trestle' ) ?></h4>
<p>
<input type="checkbox" id="<?php echo GENESIS_SETTINGS_FIELD; ?>[auto_nav]" name="<?php echo GENESIS_SETTINGS_FIELD; ?>[auto_nav]" value="1" <?php checked( esc_attr( genesis_get_option('auto_nav') ), 1); ?> /> <label for="<?php echo GENESIS_SETTINGS_FIELD; ?>[auto_nav]"><?php _e(' Automatically generate nav menu (replaces custom/manual menu with auto-generated menu)', 'trestle' ); ?></label><br />
<input type="checkbox" id="<?php echo GENESIS_SETTINGS_FIELD; ?>[include_home_link]" name="<?php echo GENESIS_SETTINGS_FIELD; ?>[include_home_link]" value="1" <?php checked( esc_attr( genesis_get_option('include_home_link') ), 1); ?> /> <label for="<?php echo GENESIS_SETTINGS_FIELD; ?>[include_home_link]"><?php _e( 'Include Home Link', 'trestle' ); ?></label>
</p>
<?php
$trestle_nav_title = __( 'Trestle Auto Nav Placeholder', 'trestle' );
// Create placeholder menu for 'primary' spot if auto-nav is selected - this ensures that nav extras can be used even when no custom menu is formally set to primary
if ( 1 == genesis_get_option( 'auto_nav' ) && !wp_get_nav_menu_object( $trestle_nav_title ) && !has_nav_menu( 'primary' ) ) {
// Create placholder menu
wp_create_nav_menu( $trestle_nav_title );
// Assign placeholder menu to 'primary'
$menu_locations = get_theme_mod('nav_menu_locations');
$menu_locations['primary'] = wp_get_nav_menu_object( $trestle_nav_title )->term_id;
set_theme_mod( 'nav_menu_locations', $menu_locations );
}
// Remove placeholder menu if auto-nav is disabled
if ( 1 != genesis_get_option( 'auto_nav' ) && wp_get_nav_menu_object( $trestle_nav_title ) && $trestle_nav_title != get_registered_nav_menus()['primary'] )
wp_delete_nav_menu( $trestle_nav_title );
// Output default Genesis nav options
$genesis_settings_object = new Genesis_Admin_Settings;
$genesis_settings_object->nav_box();
}
File diff suppressed because it is too large Load Diff
+283
View File
@@ -0,0 +1,283 @@
<?php
/**
* Trestle Theme Functions
* @since 1.0
*/
/*===========================================
* Header styles and scripts
===========================================*/
function trestle_header_actions() {
// Google fonts
wp_enqueue_style( 'google-fonts', '//fonts.googleapis.com/css?family=Lato:300,700,900' );
// Custom jQuery
wp_enqueue_script( 'trestle_jquery', get_stylesheet_directory_uri() . '/lib/js/trestle-jquery.js', array( 'jquery' ), '1.0', true );
}
/*===========================================
* Admin styles and scripts
===========================================*/
function trestle_admin_actions() {
add_editor_style( get_stylesheet_directory_uri() . '/lib/admin/admin.css' );
}
/*===========================================
* Load Required/Suggested Plugins
*
* Utilizes TGM Plugin Activation class:
* https://github.com/thomasgriffin/TGM-Plugin-Activation
===========================================*/
// Fetch & install plugins from wordpress.org
function trestle_register_required_plugins() {
$plugins = array(
// Required plugins
array(
'name' => 'Font Awesome Icons',
'slug' => 'font-awesome',
'required' => true,
),
// Optional plugins
array(
'name' => 'Black Studio TinyMCE Widget',
'slug' => 'black-studio-tinymce-widget',
'required' => true,
),
array(
'name' => 'Events Manager',
'slug' => 'events-manager',
'required' => true,
),
array(
'name' => 'Exclude Pages',
'slug' => 'exclude-pages',
'required' => true,
),
array(
'name' => 'FancyBox for WordPress',
'slug' => 'fancybox-for-wordpress',
'required' => true,
),
array(
'name' => 'Genesis Featured Widget Amplified',
'slug' => 'genesis-featured-widget-amplified',
'required' => true,
),
array(
'name' => 'Genesis Simple Edits',
'slug' => 'genesis-simple-edits',
'required' => true,
),
array(
'name' => 'MapPress Easy Google Maps',
'slug' => 'mappress-google-maps-for-wordpress',
'required' => true,
),
array(
'name' => 'My Page Order',
'slug' => 'my-page-order',
'required' => true,
),
array(
'name' => 'NextGen Gallery',
'slug' => 'nextgen-gallery',
'required' => true,
),
array(
'name' => 'Post Thumbnail Editor',
'slug' => 'post-thumbnail-editor',
'required' => true,
),
array(
'name' => 'Social Media Widget',
'slug' => 'social-media-widget',
'required' => true,
),
array(
'name' => 'Widget Context',
'slug' => 'widget-context',
'required' => true,
),
array(
'name' => 'Respond.js',
'slug' => 'respondjs',
'required' => true,
),
array(
'name' => 'Simple Image Sizes',
'slug' => 'simple-image-sizes',
'required' => true,
),
array(
'name' => 'Simple Section Navigation',
'slug' => 'simple-section-navigation',
'required' => true,
),
array(
'name' => 'Types - Custom Fields and Custom Post Types Management',
'slug' => 'types',
'required' => true,
),
);
// Change this to your theme text domain, used for internationalising strings
$theme_text_domain = 'mightyminnow';
/**
* Array of configuration settings. Amend each line as needed.
* If you want the default strings to be available under your own theme domain,
* leave the strings uncommented.
* Some of the strings are added into a sprintf, so see the comments at the
* end of each line for what each argument will be.
*/
$config = array(
'domain' => $theme_text_domain, // Text domain - likely want to be the same as your theme.
'default_path' => '', // Default absolute path to pre-packaged plugins
'parent_menu_slug' => 'themes.php', // Default parent menu slug
'parent_url_slug' => 'themes.php', // Default parent URL slug
'menu' => 'install-required-plugins', // Menu slug
'has_notices' => true, // Show admin notices or not
'is_automatic' => true, // Automatically activate plugins after installation or not
'message' => '', // Message to output right before the plugins table
'strings' => array(
'page_title' => __( 'Install Required Plugins', $theme_text_domain ),
'menu_title' => __( 'Install Plugins', $theme_text_domain ),
'installing' => __( 'Installing Plugin: %s', $theme_text_domain ), // %1$s = plugin name
'oops' => __( 'Something went wrong with the plugin API.', $theme_text_domain ),
'notice_can_install_required' => _n_noop( 'This theme requires the following plugin: %1$s.', 'This theme requires the following plugins: %1$s.' ), // %1$s = plugin name(s)
'notice_can_install_recommended' => _n_noop( 'This theme recommends the following plugin: %1$s.', 'This theme recommends the following plugins: %1$s.' ), // %1$s = plugin name(s)
'notice_cannot_install' => _n_noop( 'Sorry, but you do not have the correct permissions to install the %s plugin. Contact the administrator of this site for help on getting the plugin installed.', 'Sorry, but you do not have the correct permissions to install the %s plugins. Contact the administrator of this site for help on getting the plugins installed.' ), // %1$s = plugin name(s)
'notice_can_activate_required' => _n_noop( 'The following required plugin is currently inactive: %1$s.', 'The following required plugins are currently inactive: %1$s.' ), // %1$s = plugin name(s)
'notice_can_activate_recommended' => _n_noop( 'The following recommended plugin is currently inactive: %1$s.', 'The following recommended plugins are currently inactive: %1$s.' ), // %1$s = plugin name(s)
'notice_cannot_activate' => _n_noop( 'Sorry, but you do not have the correct permissions to activate the %s plugin. Contact the administrator of this site for help on getting the plugin activated.', 'Sorry, but you do not have the correct permissions to activate the %s plugins. Contact the administrator of this site for help on getting the plugins activated.' ), // %1$s = plugin name(s)
'notice_ask_to_update' => _n_noop( 'The following plugin needs to be updated to its latest version to ensure maximum compatibility with this theme: %1$s.', 'The following plugins need to be updated to their latest version to ensure maximum compatibility with this theme: %1$s.' ), // %1$s = plugin name(s)
'notice_cannot_update' => _n_noop( 'Sorry, but you do not have the correct permissions to update the %s plugin. Contact the administrator of this site for help on getting the plugin updated.', 'Sorry, but you do not have the correct permissions to update the %s plugins. Contact the administrator of this site for help on getting the plugins updated.' ), // %1$s = plugin name(s)
'install_link' => _n_noop( 'Begin installing plugin', 'Begin installing plugins' ),
'activate_link' => _n_noop( 'Activate installed plugin', 'Activate installed plugins' ),
'return' => __( 'Return to Required Plugins Installer', $theme_text_domain ),
'plugin_activated' => __( 'Plugin activated successfully.', $theme_text_domain ),
'complete' => __( 'All plugins installed and activated successfully. %s', $theme_text_domain ), // %1$s = dashboard link
'nag_type' => 'updated' // Determines admin notice type - can only be 'updated' or 'error'
)
);
tgmpa( $plugins, $config );
}
/*===========================================
* Auto & Mobile Navigation
===========================================*/
function trestle_nav_modifications() {
// Auto-generate nav if Genesis theme setting is checked
if ( 1 == genesis_get_option( 'auto_nav' ) ) {
// Remove existing nav
remove_action( 'genesis_after_header', 'genesis_do_nav' );
// Replace existing nav with auto-generated nav
function trestle_auto_nav() {
$args = array(
'echo' => false,
'show_home' => genesis_get_option( 'include_home_link' ),
'menu_class' => 'auto-menu'
);
$ul_class = 'menu genesis-nav-menu menu-primary';
$menu_args = new stdClass();
$menu_args->theme_location = 'primary';
$nav_items = wp_page_menu( $args );
// Remove opening <div class="auto-nav"><ul>
$nav_items = preg_replace( '/<div\s*.*auto-menu[^>]*>\s*<ul>/', '', $nav_items );
// Remove closing </ul></div>
$nav_items = preg_replace( '/<\/ul>\s*<\/div>/', '', $nav_items );
// Add Genesis nav extras
$nav_items = genesis_nav_right( $nav_items, $menu_args );
$nav = '<ul class="' . $ul_class . '">' . $nav_items . '</ul>';
$nav_markup_open = genesis_markup( array(
'html5' => '<nav %s>',
'xhtml' => '<div id="nav">',
'context' => 'nav-primary',
'echo' => false,
) );
$nav_markup_open .= genesis_structural_wrap( 'menu-primary', 'open', 0 );
$nav_markup_close = genesis_structural_wrap( 'menu-primary', 'close', 0 );
$nav_markup_close .= genesis_html5() ? '</nav>' : '</div>';
// Args to pass to navigation right/extras function
$args = new stdClass();
$args->theme_location = 'primary';
echo apply_filters ( 'trestle_do_nav', $nav_markup_open . $nav . $nav_markup_close, $args );
}
add_action( 'genesis_after_header', 'trestle_auto_nav', 0 );
}
}
// Add mobile menu button
function trestle_add_mobile_nav() {
if ( 1 == genesis_get_option( 'auto_nav' ) || has_nav_menu( 'primary' ) )
echo '<a id="menu-button" class="button" href="javascript: void(0)"><i class="icon-list-ul"></i>&nbsp;&nbsp;Navigation</a>';
}
/*===========================================
* Actions & Filters
===========================================*/
// Add jquery class to body for styling nav if jQuery isn't enabled (jQuery will remove this class if enabled)
function no_jquery( $classes ) {
$classes[] = 'no-jquery';
return $classes;
}
/*===========================================
* Footer
===========================================*/
function trestle_custom_footer($output) {
return $output . '<p class="mm">[footer_childtheme_link before=""] by <a href="http://mightyminnow.com">MIGHTYminnow</a></p>';
}
/*===========================================
* Shortcodes
===========================================*/
+54
View File
@@ -0,0 +1,54 @@
// Executes when the document is ready
jQuery(document).ready(function() {
// Remove .no-jquery body class
jQuery('body').removeClass('no-jquery');
// Get our URL
var h = window.location.host.toLowerCase();
// External Links
jQuery('[href^="http://"],[href^="https://"]').not('[href*="' + h + '"], .button, .menu-primary a').addClass('externalLink').attr("target", "_blank");
// Add classes to different types of media links
jQuery('a[href^="mailto:"]:not(.button)').addClass('emailLink');
jQuery('a[href*=".pdf"]:not(.button)').attr({"target":"_blank"}).addClass('pdfLink');
jQuery('a[href*=".doc"]:not(.button)').attr({"target":"_blank"}).addClass('docLink');
jQuery('img').parent('a:not(.button)').addClass('imageLink').removeClass('externalLink');
// Add classes to parts of lists
jQuery('li:last-child').addClass('last');
jQuery('li:first-child').addClass('first');
jQuery('ul, ol').parent('li').addClass('parent');
// Mobile navigation button
jQuery('#menu-button').click(function() {
var button = jQuery(this);
button.toggleClass('open');
jQuery('.menu-primary').slideToggle();
});
// Mobile navigation icons
var closedIcon = '+';
var openIcon = '-';
jQuery('.genesis-nav-menu .parent:not(.current-menu-item, .current_page_item, .current_page_parent, .current_page_ancestor) > a').after('<a class="sub-icon" href="javascript:void()">' + closedIcon + '</a>');
jQuery('.genesis-nav-menu .parent.current-menu-item > a, .genesis-nav-menu .parent.current_page_item > a, .genesis-nav-menu .parent.current_page_parent > a, .genesis-nav-menu .parent.current_page_ancestor > a').after('<a class="sub-icon" href="javscript: void()">' + openIcon + '</a>');
// Mobile navigation expand/contract functionality
jQuery('.sub-icon').click(function() {
var icon = jQuery(this);
icon.next('ul').slideToggle();
if ( icon.text().indexOf( closedIcon ) !== -1 )
icon.text(openIcon);
else if ( icon.text().indexOf( openIcon ) !== -1 )
icon.text(closedIcon);
});
}); /* end of as page load scripts */
// Executes when complete page is fully loaded, including all frames, objects, and images
jQuery(window).load(function() {
});
+284
View File
@@ -0,0 +1,284 @@
<?php
/**
* Trestle Theme Functions
* @since 1.0
*/
/*===========================================
* Header styles and scripts
===========================================*/
function trestle_header_actions() {
// Google fonts
wp_enqueue_style( 'google-fonts', '//fonts.googleapis.com/css?family=Lato:300,700,900' );
// Custom jQuery
wp_enqueue_script( 'trestle_jquery', get_stylesheet_directory_uri() . '/lib/js/trestle-jquery.js', array( 'jquery' ), '1.0', true );
}
/*===========================================
* Admin styles and scripts
===========================================*/
// Add admin stylesheet (doesn't yet exist)
function trestle_admin_actions() {
add_editor_style( get_stylesheet_directory_uri() . '/lib/admin/admin.css' );
}
/*===========================================
* Load Required/Suggested Plugins
*
* Utilizes TGM Plugin Activation class:
* https://github.com/thomasgriffin/TGM-Plugin-Activation
===========================================*/
// Fetch & install plugins from wordpress.org
function trestle_register_required_plugins() {
$plugins = array(
// Required plugins
array(
'name' => 'Font Awesome Icons',
'slug' => 'font-awesome',
'required' => true,
),
// Optional plugins
array(
'name' => 'Black Studio TinyMCE Widget',
'slug' => 'black-studio-tinymce-widget',
'required' => true,
),
array(
'name' => 'Events Manager',
'slug' => 'events-manager',
'required' => true,
),
array(
'name' => 'Exclude Pages',
'slug' => 'exclude-pages',
'required' => true,
),
array(
'name' => 'FancyBox for WordPress',
'slug' => 'fancybox-for-wordpress',
'required' => true,
),
array(
'name' => 'Genesis Featured Widget Amplified',
'slug' => 'genesis-featured-widget-amplified',
'required' => true,
),
array(
'name' => 'Genesis Simple Edits',
'slug' => 'genesis-simple-edits',
'required' => true,
),
array(
'name' => 'MapPress Easy Google Maps',
'slug' => 'mappress-google-maps-for-wordpress',
'required' => true,
),
array(
'name' => 'My Page Order',
'slug' => 'my-page-order',
'required' => true,
),
array(
'name' => 'NextGen Gallery',
'slug' => 'nextgen-gallery',
'required' => true,
),
array(
'name' => 'Post Thumbnail Editor',
'slug' => 'post-thumbnail-editor',
'required' => true,
),
array(
'name' => 'Social Media Widget',
'slug' => 'social-media-widget',
'required' => true,
),
array(
'name' => 'Widget Context',
'slug' => 'widget-context',
'required' => true,
),
array(
'name' => 'Respond.js',
'slug' => 'respondjs',
'required' => true,
),
array(
'name' => 'Simple Image Sizes',
'slug' => 'simple-image-sizes',
'required' => true,
),
array(
'name' => 'Simple Section Navigation',
'slug' => 'simple-section-navigation',
'required' => true,
),
array(
'name' => 'Types - Custom Fields and Custom Post Types Management',
'slug' => 'types',
'required' => true,
),
);
// Change this to your theme text domain, used for internationalising strings
$theme_text_domain = 'mightyminnow';
/**
* Array of configuration settings. Amend each line as needed.
* If you want the default strings to be available under your own theme domain,
* leave the strings uncommented.
* Some of the strings are added into a sprintf, so see the comments at the
* end of each line for what each argument will be.
*/
$config = array(
'domain' => $theme_text_domain, // Text domain - likely want to be the same as your theme.
'default_path' => '', // Default absolute path to pre-packaged plugins
'parent_menu_slug' => 'themes.php', // Default parent menu slug
'parent_url_slug' => 'themes.php', // Default parent URL slug
'menu' => 'install-required-plugins', // Menu slug
'has_notices' => true, // Show admin notices or not
'is_automatic' => true, // Automatically activate plugins after installation or not
'message' => '', // Message to output right before the plugins table
'strings' => array(
'page_title' => __( 'Install Required Plugins', $theme_text_domain ),
'menu_title' => __( 'Install Plugins', $theme_text_domain ),
'installing' => __( 'Installing Plugin: %s', $theme_text_domain ), // %1$s = plugin name
'oops' => __( 'Something went wrong with the plugin API.', $theme_text_domain ),
'notice_can_install_required' => _n_noop( 'This theme requires the following plugin: %1$s.', 'This theme requires the following plugins: %1$s.' ), // %1$s = plugin name(s)
'notice_can_install_recommended' => _n_noop( 'This theme recommends the following plugin: %1$s.', 'This theme recommends the following plugins: %1$s.' ), // %1$s = plugin name(s)
'notice_cannot_install' => _n_noop( 'Sorry, but you do not have the correct permissions to install the %s plugin. Contact the administrator of this site for help on getting the plugin installed.', 'Sorry, but you do not have the correct permissions to install the %s plugins. Contact the administrator of this site for help on getting the plugins installed.' ), // %1$s = plugin name(s)
'notice_can_activate_required' => _n_noop( 'The following required plugin is currently inactive: %1$s.', 'The following required plugins are currently inactive: %1$s.' ), // %1$s = plugin name(s)
'notice_can_activate_recommended' => _n_noop( 'The following recommended plugin is currently inactive: %1$s.', 'The following recommended plugins are currently inactive: %1$s.' ), // %1$s = plugin name(s)
'notice_cannot_activate' => _n_noop( 'Sorry, but you do not have the correct permissions to activate the %s plugin. Contact the administrator of this site for help on getting the plugin activated.', 'Sorry, but you do not have the correct permissions to activate the %s plugins. Contact the administrator of this site for help on getting the plugins activated.' ), // %1$s = plugin name(s)
'notice_ask_to_update' => _n_noop( 'The following plugin needs to be updated to its latest version to ensure maximum compatibility with this theme: %1$s.', 'The following plugins need to be updated to their latest version to ensure maximum compatibility with this theme: %1$s.' ), // %1$s = plugin name(s)
'notice_cannot_update' => _n_noop( 'Sorry, but you do not have the correct permissions to update the %s plugin. Contact the administrator of this site for help on getting the plugin updated.', 'Sorry, but you do not have the correct permissions to update the %s plugins. Contact the administrator of this site for help on getting the plugins updated.' ), // %1$s = plugin name(s)
'install_link' => _n_noop( 'Begin installing plugin', 'Begin installing plugins' ),
'activate_link' => _n_noop( 'Activate installed plugin', 'Activate installed plugins' ),
'return' => __( 'Return to Required Plugins Installer', $theme_text_domain ),
'plugin_activated' => __( 'Plugin activated successfully.', $theme_text_domain ),
'complete' => __( 'All plugins installed and activated successfully. %s', $theme_text_domain ), // %1$s = dashboard link
'nag_type' => 'updated' // Determines admin notice type - can only be 'updated' or 'error'
)
);
tgmpa( $plugins, $config );
}
/*===========================================
* Auto & Mobile Navigation
===========================================*/
function trestle_nav_modifications() {
// Auto-generate nav if Genesis theme setting is checked
if ( 1 == genesis_get_option( 'auto_nav' ) ) {
// Remove existing nav
remove_action( 'genesis_after_header', 'genesis_do_nav' );
// Replace existing nav with auto-generated nav
function trestle_auto_nav() {
$args = array(
'echo' => false,
'show_home' => genesis_get_option( 'includeinclude_home_link' ),
'menu_class' => 'auto-menu'
);
$ul_class = 'menu genesis-nav-menu menu-primary';
$menu_args = new stdClass();
$menu_args->theme_location = 'primary';
$nav_items = wp_page_menu( $args );
// Remove opening <div class="auto-nav"><ul>
$nav_items = preg_replace( '/<div\s*.*auto-menu[^>]*>\s*<ul>/', '', $nav_items );
// Remove closing </ul></div>
$nav_items = preg_replace( '/<\/ul>\s*<\/div>/', '', $nav_items );
// Add Genesis nav extras
$nav_items = genesis_nav_right( $nav_items, $menu_args );
$nav = '<ul class="' . $ul_class . '">' . $nav_items . '</ul>';
$nav_markup_open = genesis_markup( array(
'html5' => '<nav %s>',
'xhtml' => '<div id="nav">',
'context' => 'nav-primary',
'echo' => false,
) );
$nav_markup_open .= genesis_structural_wrap( 'menu-primary', 'open', 0 );
$nav_markup_close = genesis_structural_wrap( 'menu-primary', 'close', 0 );
$nav_markup_close .= genesis_html5() ? '</nav>' : '</div>';
// Args to pass to navigation right/extras function
$args = new stdClass();
$args->theme_location = 'primary';
echo apply_filters ( 'trestle_do_nav', $nav_markup_open . $nav . $nav_markup_close, $args );
}
add_action( 'genesis_after_header', 'trestle_auto_nav', 0 );
}
}
// Add mobile menu button
function trestle_add_mobile_nav() {
if ( 1 == genesis_get_option( 'auto_nav' ) || has_nav_menu( 'primary' ) )
echo '<a id="menu-button" class="button" href="javascript: void(0)"><i class="icon-list-ul"></i>&nbsp;&nbsp;Navigation</a>';
}
/*===========================================
* Actions & Filters
===========================================*/
// Add jquery class to body for styling nav if jQuery isn't enabled (jQuery will remove this class if enabled)
function no_jquery( $classes ) {
$classes[] = 'no-jquery';
return $classes;
}
/*===========================================
* Footer
===========================================*/
function trestle_custom_footer($output) {
return $output . '<p class="mm">[footer_childtheme_link before=""] by <a href="http://mightyminnow.com">MIGHTYminnow</a></p>';
}