diff --git a/functions.php b/functions.php index 1908d68..2861c54 100644 --- a/functions.php +++ b/functions.php @@ -30,9 +30,6 @@ require_once dirname( __FILE__ ) . '/includes/widget-areas/widget-areas.php'; // Plugin activation class. require_once dirname( __FILE__ ) . '/lib/class-tgm-plugin-activation.php'; -// Better Font Awesome Library. -require_once dirname( __FILE__ ) . '/lib/better-font-awesome-library/better-font-awesome-library.php'; - // Dev utility functions. require_once dirname( __FILE__ ) . '/includes/utilities/utilities.php'; @@ -52,7 +49,7 @@ function trestle_theme_setup() { // Child theme definitions (do not remove). define( 'TRESTLE_THEME_NAME', 'Trestle' ); define( 'TRESTLE_THEME_URL', 'http://demo.mightyminnow.com/theme/trestle/' ); - define( 'TRESTLE_THEME_VERSION', '2.1.1' ); + define( 'TRESTLE_THEME_VERSION', '2.2.0' ); define( 'TRESTLE_SETTINGS_FIELD', 'trestle-settings' ); // Setup default theme settings. diff --git a/includes/admin/admin.php b/includes/admin/admin.php index 6890870..d04cfb9 100755 --- a/includes/admin/admin.php +++ b/includes/admin/admin.php @@ -18,20 +18,20 @@ function trestle_settings_defaults() { // Trestle default key/value pairs. $trestle_defaults = array( - 'layout' => 'solid', - 'logo_url' => '', - 'logo_url_mobile' => '', - 'favicon_url' => '', - 'nav_primary_location' => 'full', - 'mobile_nav_toggle' => 'small-icon', - 'search_in_nav' => '', - 'read_more_text' => __( 'Read More »', 'trestle' ), - 'revisions_number' => 3, - 'footer_widgets_number' => 3, - 'external_link_icons' => 0, - 'email_link_icons' => 0, - 'pdf_link_icons' => 0, - 'doc_link_icons' => 0, + 'layout' => 'solid', + 'logo_id' => '', + 'logo_id_mobile' => '', + 'favicon_url' => '', + 'nav_primary_location' => 'full', + 'mobile_nav_toggle' => 'small-icon', + 'search_in_nav' => '', + 'read_more_text' => __( 'Read More »', 'trestle' ), + 'revisions_number' => 3, + 'footer_widgets_number' => 3, + 'external_link_icons' => 0, + 'email_link_icons' => 0, + 'pdf_link_icons' => 0, + 'doc_link_icons' => 0, ); // Populate Trestle settings with default values if they don't yet exist. @@ -95,6 +95,33 @@ function trestle_admin_actions() { } +add_filter( 'tiny_mce_before_init', 'trestle_tiny_mce_before_init' ); +/** + * Add custom classes to the body of TinyMCE previews. + * + * @since 2.2.0 + */ +function trestle_tiny_mce_before_init( $init_array ) { + + global $post; + + $screen = get_current_screen(); + + // If we're on an edit screen, add an appropriate 'post-id-XX' or 'page-id-XX'. + if ( is_object( $screen ) && 'edit' == $screen->parent_base ) { + + // Custom post types always use 'post', so we only need to handle pages. + $post_type = ( 'page' == $post->post_type ) ? 'page' : 'post'; + + $init_array['body_class'] .= sprintf( ' %s-id-%s', + $post_type, + $post->ID + ); + } + + return $init_array; +} + add_action( 'tgmpa_register', 'trestle_register_required_plugins' ); /** * Loads required & recommended plugins. @@ -183,6 +210,12 @@ function trestle_register_required_plugins() { 'required' => false, ), + array( + 'name' => 'RICG Responsive Images', + 'slug' => 'ricg-responsive-images', + 'required' => false, + ), + array( 'name' => 'Widget Context', 'slug' => 'widget-context', diff --git a/includes/admin/customizer.php b/includes/admin/customizer.php index 3416945..4e8b69b 100755 --- a/includes/admin/customizer.php +++ b/includes/admin/customizer.php @@ -25,8 +25,8 @@ function trestle_customizer_controls( $wp_customize ) { $wp_customize->add_section( 'trestle_settings_section', array( - 'title' => __( 'Trestle Settings', 'trestle' ), - 'priority' => 160, + 'title' => __( 'Trestle Settings', 'trestle' ), + 'priority' => 160, ) ); @@ -34,65 +34,67 @@ function trestle_customizer_controls( $wp_customize ) { $wp_customize->add_setting( 'trestle-settings[layout]', array( - 'default' => trestle_get_option( 'layout' ), - 'type' => 'option', - 'capability' => 'edit_theme_options', + 'default' => trestle_get_option( 'layout' ), + 'type' => 'option', + 'capability' => 'edit_theme_options', ) ); $wp_customize->add_control( 'trestle_layout_control', array( - 'section' => 'trestle_settings_section', - 'settings' => 'trestle-settings[layout]', - 'label' => __( 'Layout', 'trestle' ), - 'type' => 'radio', - 'choices' => array( - 'bubble' => __( 'Bubble', 'trestle' ), - 'solid' => __( 'Solid', 'trestle' ), + 'section' => 'trestle_settings_section', + 'settings' => 'trestle-settings[layout]', + 'label' => __( 'Layout', 'trestle' ), + 'type' => 'radio', + 'choices' => array( + 'bubble' => __( 'Bubble', 'trestle' ), + 'solid' => __( 'Solid', 'trestle' ), ) ) ); // Upload a logo. $wp_customize->add_setting( - 'trestle-settings[logo_url]', + 'trestle-settings[logo_id]', array( - 'default' => trestle_get_option( 'logo_url' ), - 'type' => 'option', - 'capability' => 'edit_theme_options', - 'sanitize_callback' => 'esc_url_raw', + 'default' => trestle_get_option( 'logo_id' ), + 'type' => 'option', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'absint', ) ); $wp_customize->add_control( - new WP_Customize_Image_Control( + new WP_Customize_Media_Control( $wp_customize, 'trestle_logo_control', array( - 'label' => __( 'Upload a logo', 'trestle' ), - 'section' => 'trestle_settings_section', - 'settings' => 'trestle-settings[logo_url]', + 'label' => __( 'Upload a logo', 'trestle' ), + 'section' => 'trestle_settings_section', + 'settings' => 'trestle-settings[logo_id]', + 'mime_type' => 'image', ) ) ); // Upload a mobile logo. $wp_customize->add_setting( - 'trestle-settings[logo_url_mobile]', + 'trestle-settings[logo_id_mobile]', array( - 'default' => trestle_get_option( 'logo_url_mobile' ), - 'type' => 'option', - 'capability' => 'edit_theme_options', - 'sanitize_callback' => 'esc_url_raw', + 'default' => trestle_get_option( 'logo_id_mobile' ), + 'type' => 'option', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'absint', ) ); $wp_customize->add_control( - new WP_Customize_Image_Control( + new WP_Customize_Media_Control( $wp_customize, 'trestle_mobile_logo_control', array( - 'label' => __( 'Upload a mobile logo', 'trestle' ), - 'section' => 'trestle_settings_section', - 'settings' => 'trestle-settings[logo_url_mobile]', + 'label' => __( 'Upload a mobile logo', 'trestle' ), + 'section' => 'trestle_settings_section', + 'settings' => 'trestle-settings[logo_id_mobile]', + 'mime_type' => 'image', ) ) ); @@ -101,10 +103,10 @@ function trestle_customizer_controls( $wp_customize ) { $wp_customize->add_setting( 'trestle-settings[favicon_url]', array( - 'default' => trestle_get_option( 'favicon_url' ), - 'type' => 'option', - 'capability' => 'edit_theme_options', - 'sanitize_callback' => 'esc_url_raw', + 'default' => trestle_get_option( 'favicon_url' ), + 'type' => 'option', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'esc_url_raw', ) ); $wp_customize->add_control( @@ -112,9 +114,9 @@ function trestle_customizer_controls( $wp_customize ) { $wp_customize, 'trestle_favicon_control', array( - 'label' => __( 'Upload a favicon', 'trestle' ), - 'section' => 'trestle_settings_section', - 'settings' => 'trestle-settings[favicon_url]', + 'label' => __( 'Upload a favicon', 'trestle' ), + 'section' => 'trestle_settings_section', + 'settings' => 'trestle-settings[favicon_url]', ) ) ); @@ -123,21 +125,21 @@ function trestle_customizer_controls( $wp_customize ) { $wp_customize->add_setting( 'trestle-settings[nav_primary_location]', array( - 'default' => trestle_get_option( 'nav_primary_location' ), - 'type' => 'option', - 'capability' => 'edit_theme_options', + 'default' => trestle_get_option( 'nav_primary_location' ), + 'type' => 'option', + 'capability' => 'edit_theme_options', ) ); $wp_customize->add_control( 'trestle_nav_primary_location_control', array( - 'section' => 'trestle_settings_section', - 'settings' => 'trestle-settings[nav_primary_location]', - 'label' => __( 'Menu style', 'trestle' ), - 'type' => 'select', - 'choices' => array( - 'full' => __( 'Full Width', 'trestle' ), - 'header' => __( 'Header Right', 'trestle' ), + 'section' => 'trestle_settings_section', + 'settings' => 'trestle-settings[nav_primary_location]', + 'label' => __( 'Menu style', 'trestle' ), + 'type' => 'select', + 'choices' => array( + 'full' => __( 'Full Width', 'trestle' ), + 'header' => __( 'Header Right', 'trestle' ), ) ) ); @@ -146,9 +148,9 @@ function trestle_customizer_controls( $wp_customize ) { $wp_customize->add_setting( 'trestle-settings[mobile_nav_toggle]', array( - 'default' => trestle_get_option( 'mobile_nav_toggle' ), - 'type' => 'option', - 'capability' => 'edit_theme_options', + 'default' => trestle_get_option( 'mobile_nav_toggle' ), + 'type' => 'option', + 'capability' => 'edit_theme_options', ) ); $wp_customize->add_control( @@ -159,8 +161,8 @@ function trestle_customizer_controls( $wp_customize ) { 'label' => __( 'Mobile Menu Toggle', 'trestle' ), 'type' => 'select', 'choices' => array( - 'small-icon' => __( 'Small Icon', 'trestle' ), - 'big-button' => __( 'Big Button', 'trestle' ), + 'small-icon' => __( 'Small Icon', 'trestle' ), + 'big-button' => __( 'Big Button', 'trestle' ), ) ) ); @@ -169,9 +171,9 @@ function trestle_customizer_controls( $wp_customize ) { $wp_customize->add_setting( 'trestle-settings[search_in_nav]', array( - 'default' => trestle_get_option( 'search_in_nav' ), - 'type' => 'option', - 'capability' => 'edit_theme_options', + 'default' => trestle_get_option( 'search_in_nav' ), + 'type' => 'option', + 'capability' => 'edit_theme_options', ) ); $wp_customize->add_control( @@ -180,7 +182,7 @@ function trestle_customizer_controls( $wp_customize ) { 'section' => 'trestle_settings_section', 'settings' => 'trestle-settings[search_in_nav]', 'label' => __( 'Add search to mobile navigation', 'trestle' ), - 'type' => 'checkbox', + 'type' => 'checkbox', ) ); @@ -188,18 +190,18 @@ function trestle_customizer_controls( $wp_customize ) { $wp_customize->add_setting( 'trestle-settings[read_more_text]', array( - 'default' => trestle_get_option( 'read_more_text' ), - 'type' => 'option', - 'capability' => 'edit_theme_options', - 'sanitize_callback' => 'wp_kses_post', + 'default' => trestle_get_option( 'read_more_text' ), + 'type' => 'option', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'wp_kses_post', ) ); $wp_customize->add_control( 'trestle_read_more_text_control', array( - 'section' => 'trestle_settings_section', - 'settings' => 'trestle-settings[read_more_text]', - 'label' => __( 'Custom read more link text', 'trestle' ), + 'section' => 'trestle_settings_section', + 'settings' => 'trestle-settings[read_more_text]', + 'label' => __( 'Custom read more link text', 'trestle' ), ) ); @@ -207,31 +209,32 @@ function trestle_customizer_controls( $wp_customize ) { $wp_customize->add_setting( 'trestle-settings[revisions_number]', array( - 'default' => trestle_get_option( 'revisions_number' ), - 'type' => 'option', - 'capability' => 'edit_theme_options', + 'default' => trestle_get_option( 'revisions_number' ), + 'type' => 'option', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'absint', ) ); $wp_customize->add_control( 'trestle_revisions_number_control', array( - 'section' => 'trestle_settings_section', - 'settings' => 'trestle-settings[revisions_number]', - 'label' => __( 'Number of post revisions', 'trestle' ), - 'type' => 'select', - 'choices' => array( - '-1' => __( 'Unlimited', 'trestle' ), - '0' => '0', - '1' => '1', - '2' => '2', - '3' => '3', - '4' => '4', - '5' => '5', - '6' => '6', - '7' => '7', - '8' => '8', - '9' => '9', - '10' => '10', + 'section' => 'trestle_settings_section', + 'settings' => 'trestle-settings[revisions_number]', + 'label' => __( 'Number of post revisions', 'trestle' ), + 'type' => 'select', + 'choices' => array( + '-1' => __( 'Unlimited', 'trestle' ), + '0' => '0', + '1' => '1', + '2' => '2', + '3' => '3', + '4' => '4', + '5' => '5', + '6' => '6', + '7' => '7', + '8' => '8', + '9' => '9', + '10' => '10', ) ) ); @@ -240,26 +243,26 @@ function trestle_customizer_controls( $wp_customize ) { $wp_customize->add_setting( 'trestle-settings[footer_widgets_number]', array( - 'default' => trestle_get_option( 'footer_widgets_number' ), - 'type' => 'option', - 'capability' => 'edit_theme_options', + 'default' => trestle_get_option( 'footer_widgets_number' ), + 'type' => 'option', + 'capability' => 'edit_theme_options', ) ); $wp_customize->add_control( 'trestle_footer_widgets_number_control', array( - 'section' => 'trestle_settings_section', - 'settings' => 'trestle-settings[footer_widgets_number]', - 'label' => __( 'Number of footer widgets', 'trestle' ), - 'type' => 'select', - 'choices' => array( - '0' => '0', - '1' => '1', - '2' => '2', - '3' => '3', - '4' => '4', - '5' => '5', - '6' => '6', + 'section' => 'trestle_settings_section', + 'settings' => 'trestle-settings[footer_widgets_number]', + 'label' => __( 'Number of footer widgets', 'trestle' ), + 'type' => 'select', + 'choices' => array( + '0' => '0', + '1' => '1', + '2' => '2', + '3' => '3', + '4' => '4', + '5' => '5', + '6' => '6', ) ) ); @@ -268,17 +271,17 @@ function trestle_customizer_controls( $wp_customize ) { $wp_customize->add_setting( 'trestle-settings[link_icons_title]', array( - 'default' => '', - 'type' => 'option', + 'default' => '', + 'type' => 'option', ) ); $wp_customize->add_control( 'trestle_link_icons_title', array( - 'section' => 'trestle_settings_section', - 'settings' => 'trestle-settings[link_icons_title]', - 'label' => __( 'Icon links', 'trestle' ), - 'type' => 'hidden', + 'section' => 'trestle_settings_section', + 'settings' => 'trestle-settings[link_icons_title]', + 'label' => __( 'Icon links', 'trestle' ), + 'type' => 'hidden', ) ); @@ -286,18 +289,18 @@ function trestle_customizer_controls( $wp_customize ) { $wp_customize->add_setting( 'trestle-settings[external_link_icons]', array( - 'default' => trestle_get_option( 'external_link_icons' ), - 'type' => 'option', - 'capability' => 'edit_theme_options', + 'default' => trestle_get_option( 'external_link_icons' ), + 'type' => 'option', + 'capability' => 'edit_theme_options', ) ); $wp_customize->add_control( 'trestle_external_link_icons', array( - 'section' => 'trestle_settings_section', - 'settings' => 'trestle-settings[external_link_icons]', - 'label' => __( 'Add icons to external links', 'trestle' ), - 'type' => 'checkbox', + 'section' => 'trestle_settings_section', + 'settings' => 'trestle-settings[external_link_icons]', + 'label' => __( 'Add icons to external links', 'trestle' ), + 'type' => 'checkbox', ) ); @@ -305,18 +308,18 @@ function trestle_customizer_controls( $wp_customize ) { $wp_customize->add_setting( 'trestle-settings[email_link_icons]', array( - 'default' => trestle_get_option( 'email_link_icons' ), - 'type' => 'option', - 'capability' => 'edit_theme_options', + 'default' => trestle_get_option( 'email_link_icons' ), + 'type' => 'option', + 'capability' => 'edit_theme_options', ) ); $wp_customize->add_control( 'trestle_email_link_icons', array( - 'section' => 'trestle_settings_section', - 'settings' => 'trestle-settings[email_link_icons]', - 'label' => __( 'Add icons to email links', 'trestle' ), - 'type' => 'checkbox', + 'section' => 'trestle_settings_section', + 'settings' => 'trestle-settings[email_link_icons]', + 'label' => __( 'Add icons to email links', 'trestle' ), + 'type' => 'checkbox', ) ); @@ -324,18 +327,18 @@ function trestle_customizer_controls( $wp_customize ) { $wp_customize->add_setting( 'trestle-settings[pdf_link_icons]', array( - 'default' => trestle_get_option( 'pdf_link_icons' ), - 'type' => 'option', - 'capability' => 'edit_theme_options', + 'default' => trestle_get_option( 'pdf_link_icons' ), + 'type' => 'option', + 'capability' => 'edit_theme_options', ) ); $wp_customize->add_control( 'trestle_pdf_link_icons', array( - 'section' => 'trestle_settings_section', - 'settings' => 'trestle-settings[pdf_link_icons]', - 'label' => __( 'Add icons to .pdf links', 'trestle' ), - 'type' => 'checkbox', + 'section' => 'trestle_settings_section', + 'settings' => 'trestle-settings[pdf_link_icons]', + 'label' => __( 'Add icons to .pdf links', 'trestle' ), + 'type' => 'checkbox', ) ); @@ -343,18 +346,18 @@ function trestle_customizer_controls( $wp_customize ) { $wp_customize->add_setting( 'trestle-settings[doc_link_icons]', array( - 'default' => trestle_get_option( 'doc_link_icons' ), - 'type' => 'option', - 'capability' => 'edit_theme_options', + 'default' => trestle_get_option( 'doc_link_icons' ), + 'type' => 'option', + 'capability' => 'edit_theme_options', ) ); $wp_customize->add_control( 'trestle_doc_link_icons', array( - 'section' => 'trestle_settings_section', - 'settings' => 'trestle-settings[doc_link_icons]', - 'label' => __( 'Add icons to .doc links', 'trestle' ), - 'type' => 'checkbox', + 'section' => 'trestle_settings_section', + 'settings' => 'trestle-settings[doc_link_icons]', + 'label' => __( 'Add icons to .doc links', 'trestle' ), + 'type' => 'checkbox', ) ); diff --git a/includes/functions/theme-functions.php b/includes/functions/theme-functions.php index e5f8b21..56f62ec 100755 --- a/includes/functions/theme-functions.php +++ b/includes/functions/theme-functions.php @@ -55,6 +55,9 @@ add_action( 'init', 'trestle_load_bfa' ); */ function trestle_load_bfa() { + // Better Font Awesome Library + require_once trailingslashit( get_stylesheet_directory() ) . 'lib/better-font-awesome-library/better-font-awesome-library.php'; + // Set the library initialization args. $args = array( 'version' => 'latest', @@ -192,7 +195,7 @@ function trestle_body_classes( $classes ) { } // Add logo class. - if ( trestle_get_option( 'logo_url' ) || trestle_get_option( 'logo_url_mobile' ) ) { + if ( trestle_get_option( 'logo_id' ) || trestle_get_option( 'logo_id_mobile' ) ) { $classes[] = 'has-logo'; } @@ -213,46 +216,59 @@ add_filter( 'genesis_seo_title', 'trestle_do_logos', 10, 3 ); */ function trestle_do_logos( $title, $inside, $wrap ) { - $logo_url = trestle_get_option( 'logo_url' ); - $logo_url_mobile = trestle_get_option( 'logo_url_mobile' ); + $logo_id = trestle_get_option( 'logo_id' ); + $logo_id_mobile = trestle_get_option( 'logo_id_mobile' ); $logo_html = ''; // Regular logo. - if ( $logo_url ) { + if ( $logo_id ) { - // Default logo class. - $classes = array('logo-full'); + // Default logo classes. + $classes = array( + 'logo', + 'logo-full' + ); // If no mobile logo is specified, make regular logo act as mobile logo too. - if( ! $logo_url_mobile ) + if( ! $logo_id_mobile ) { $classes[] = 'show'; + } - $logo_html .= sprintf( '', - implode(' ', $classes), - esc_attr( get_bloginfo( 'name' ) ), - $logo_url + // Prepare the classes. + $logo_attr = array( + 'class' => implode( $classes, ' ' ), ); + + // Build the tag. + $logo_html .= wp_get_attachment_image( $logo_id, 'full', false, $logo_attr ); + } // Mobile logo. - if ( $logo_url_mobile ) { + if ( $logo_id_mobile ) { // Default mobile logo class. - $classes = array('logo-mobile'); + $classes = array( + 'logo', + 'logo-mobile' + ); // If no regular logo is specified, make mobile logo act as regular logo too. - if( ! $logo_url ) + if( ! $logo_id ) $classes[] = 'show'; - $logo_html .= sprintf( '', - implode(' ', $classes), - esc_attr( get_bloginfo( 'name' ) ), - $logo_url_mobile + // Prepare the classes. + $logo_attr = array( + 'class' => implode( $classes, ' ' ), ); + + // Build the tag. + $logo_html .= wp_get_attachment_image( $logo_id_mobile, 'full', false, $logo_attr ); + } if ( $logo_html ) { - $inside .= sprintf( '%s', + $inside .= sprintf( '%s', trailingslashit( home_url() ), esc_attr( get_bloginfo( 'name' ) ), $logo_html @@ -315,6 +331,26 @@ function trestle_custom_nav_extras( $nav_items, stdClass $menu_args ) { * Posts & Pages ===========================================*/ +add_filter( 'post_class', 'trestle_post_classes' ); +/** + * Add extra classes to posts in certain situations. + * + * @since 2.2.0 + * + * @param array $classes Post classes. + * @return array Updated post classes. + */ +function trestle_post_classes( $classes ) { + + // If post doesn't have a featured image. + if ( ! has_post_thumbnail() ) { + $classes[] = 'no-featured-image'; + } + + return $classes; + +} + add_filter( 'wp_revisions_to_keep', 'trestle_update_revisions_number', 10, 2 ); /** * Sets the number of post revisions. @@ -382,3 +418,68 @@ function trestle_read_more_link( $default_text ) { return $default_text; } } + + +/*=========================================== + * Helper Functions +===========================================*/ + +/** + * Check if image has specified image size. + * + * @since 2.2.0 + * + * @param int $image_id ID of image to check. + * @param string $image_size Slug of image size to check for. + * + * @return true|false Whether or not the image has the specified size generated. + */ +function trestle_image_has_size( $image_id, $image_size = null ) { + + global $_wp_additional_image_sizes; + + // Return with error if no image_size is specified. + if ( ! $image_size ) { + return new WP_Error( 'no_image_size_specified', __( 'Please specify an image size.', 'trestle' ) ); + } + + // Get the attributes for the specified image size. + $image_size_atts = $_wp_additional_image_sizes[ $image_size ]; + + // Get data for specified image ID and size. + $img_data = wp_get_attachment_image_src( $image_id, $image_size ); + + // Check if the dimensions match. + if ( $img_data[1] == $image_size_atts['width'] && $img_data[2] == $image_size_atts['height'] ) { + return true; + } + + return false; + +} + +/** + * Check if post is, or is a child of, a target post. + * + * @since 1.0.0 + * + * @param string $post_id Post ID to check. + * @param string $target_id Target post ID to check against. + * + * @return true|false + */ +function trestle_is_current_or_descendant_post( $post_id = '', $target_id = '' ) { + + // If the current post is the target post, return true. + if ( $post_id == $target_id ) { + return true; + } + + // If the current post is a descendant of the target post. + if ( in_array( $target_id, get_post_ancestors( $post_id ) ) ) { + return true; + } + + return false; + +} diff --git a/includes/js/theme-jquery.js b/includes/js/theme-jquery.js index 36b190b..99fa49f 100755 --- a/includes/js/theme-jquery.js +++ b/includes/js/theme-jquery.js @@ -107,8 +107,8 @@ jQuery( document ).ready( function( $ ) { var openIcon = '-'; // Insert the icons into the nav where appropriate. - $( '.nav-primary' ).find( '.genesis-nav-menu .parent:not( .current-menu-item, .current_page_item, .current_page_parent, .current_page_ancestor) > a' ).after( '' + closedIcon + '' ); - $( '.nav-primary' ).find( '.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( '' + openIcon + '' ); + $( '.nav-primary' ).find( '.genesis-nav-menu .parent:not( [class*="current"] ) > a' ).after( '' + closedIcon + '' ); + $( '.nav-primary' ).find( '.genesis-nav-menu .parent[class*="current"] > a' ).after( '' + openIcon + '' ); // Mobile navigation expand/contract functionality. $( '.sub-icon' ).click( function( event ) { diff --git a/style.css b/style.css index ac2a68b..0b4411a 100755 --- a/style.css +++ b/style.css @@ -5,7 +5,7 @@ Description: Trestle is a Genesis child theme for developers based on the default Genesis 2.0 Sample Theme. It features mobile first CSS, helpful theme options, and lots more tools to support your development process. Author: MIGHTYminnow Author URI: http://www.mightyminnow.com/ - Version: 2.1.1 + Version: 2.2.0 Tags: black, gray, red, white, light, one-column, two-columns, three-columns, left-sidebar, right-sidebar, fluid-layout, responsive-layout, custom-background, custom-colors, custom-header, custom-menu, editor-style, featured-images, flexible-header, front-page-post-form, full-width-template, post-formats, rtl-language-support, sticky-post, theme-options, threaded-comments, translation-ready, genesis, mobile-first, responsive, clean Text Domain: trestle GitHub Theme URI: MIGHTYminnow/trestle @@ -129,7 +129,6 @@ input[type="search"] { display: table; } - /* Defaults ---------------------------------------------------------------------------------------------------- */ @@ -151,6 +150,10 @@ body { line-height: 1.625; } +body.bubble { + background-color: #f5f5f5; +} + /* Used in the editor */ body.mce-content-body { width: auto; @@ -158,10 +161,7 @@ body.mce-content-body { float: none; -webkit-font-smoothing: auto !important; font-smoothing: auto !important; -} - -body.bubble { - background-color: #f5f5f5; + background: #fff; } a, @@ -609,46 +609,6 @@ body .red:hover { border-color: #555; } -body .blue { - background-color: #0971b2; - border-color: #0971b2; -} - -body .blue:hover { - background-color: #333; - border-color: #333; -} - -body .green { - background-color: #00a476; - border-color: #00a476; -} - -body .green:hover { - background-color: #333; - border-color: #333; -} - -.arrow-right:after, -.arrow-left:before { - display: inline-block; - font-family: FontAwesome; - font-weight: normal; - font-stretch: normal; - font-style: normal; - font-variant: normal; - line-height: 1; - -webkit-font-smoothing: antialiased; -} - -.arrow-right:after { - content: "\00a0\00a0\f0a9"; -} - -.arrow-left:before { - content: "\f0a8\00a0\00a0"; -} - /* Tables --------------------------------------------- */ @@ -681,7 +641,6 @@ td { padding: 0.6rem 0; } - /* Structure and Layout ---------------------------------------------------------------------------------------------------- */ @@ -721,7 +680,6 @@ Structure and Layout padding: 20px; padding: 2rem; background-color: transparent; - } .entry, @@ -740,6 +698,7 @@ Structure and Layout /* Bubble Layout --------------------------------------------- */ + .bubble .entry, .bubble .sidebar .widget, .bubble .ez-widget-area, @@ -831,7 +790,6 @@ Structure and Layout width: 100%; } - /* Common Classes ---------------------------------------------------------------------------------------------------- */ @@ -908,6 +866,35 @@ img.alignright, text-align: center; } +/* Text meant only for screen readers. */ +.screen-reader-text { + clip: rect(1px, 1px, 1px, 1px); + position: absolute !important; + height: 1px; + width: 1px; + overflow: hidden; +} + +.screen-reader-text:focus { + background-color: #f1f1f1; + border-radius: 3px; + box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6); + clip: auto !important; + color: #21759b; + display: block; + font-size: 14px; + font-size: 0.875rem; + font-weight: bold; + height: auto; + left: 5px; + line-height: normal; + padding: 15px 23px 14px; + text-decoration: none; + top: 5px; + width: auto; + z-index: 100000; /* Above WP toolbar. */ +} + /* Genesis --------------------------------------------- */ @@ -981,7 +968,6 @@ img.alignright, margin-bottom: 2.4rem; } - /* Plugins & Widgets ---------------------------------------------------------------------------------------------------- */ @@ -1076,7 +1062,6 @@ Plugins & Widgets margin-bottom: 28px; } - /* Gravity Forms --------------------------------------------- */ @@ -1110,7 +1095,7 @@ div.gform_wrapper form .gfield_checkbox li { margin: 0; } -div.gform_wrapper ul.gfield_radio li { /* Prevent radio optoin from being cut off by default GF CSS */ +div.gform_wrapper ul.gfield_radio li { /* Prevent radio option from being cut off by default GF CSS */ padding-left: 1px !important; } @@ -1145,7 +1130,6 @@ img#wpstats { display: none; } - /* Jetpack - Blog Subscriptions --------------------------------------------- */ @@ -1318,7 +1302,6 @@ th a.wpv-header-desc:after { top: auto; } - /* Site Header ---------------------------------------------------------------------------------------------------- */ @@ -1375,7 +1358,6 @@ Site Header top: -9999px; } - /* Logo --------------------------------------------- */ @@ -1387,7 +1369,6 @@ Site Header display: inline-block !important; } - /* Header Widget Areas --------------------------------------------- */ @@ -1406,7 +1387,6 @@ Site Header text-align: center; } - /* Header Toggle Styles --------------------------------------------- */ @@ -1587,10 +1567,10 @@ Site Navigation background-color: #fff; border-bottom: 1px solid #eee; -webkit-transition: opacity .4s ease-in-out; - -moz-transition: opacity .4s ease-in-out; - -ms-transition: opacity .4s ease-in-out; - -o-transition: opacity .4s ease-in-out; - transition: opacity .4s ease-in-out; + -moz-transition: opacity .4s ease-in-out; + -ms-transition: opacity .4s ease-in-out; + -o-transition: opacity .4s ease-in-out; + transition: opacity .4s ease-in-out; } .genesis-nav-menu [class*="current-"] > ul, @@ -1636,7 +1616,6 @@ Site Navigation text-align: center; } - /* Primary Navigation --------------------------------------------- */ @@ -1696,7 +1675,6 @@ Site Navigation margin: 0 0 0 0.5em; } - /* Secondary Navigation --------------------------------------------- */ @@ -1710,7 +1688,6 @@ Site Navigation color: #111; } - /* Header Navigation --------------------------------------------- */ @@ -1737,7 +1714,6 @@ Site Navigation display: none; } - /* Header Primary Navigation --------------------------------------------- */ @@ -1766,7 +1742,6 @@ Site Navigation display: block; } - /* Content Area ---------------------------------------------------------------------------------------------------- */ @@ -1846,7 +1821,6 @@ Content Area margin-left: 0; } - .archive-pagination li { display: inline; } @@ -1863,7 +1837,6 @@ Content Area padding: 0.8rem 1.2rem; } - .pagination-next a:hover, .pagination-previous a:hover, .archive-pagination li a:hover, @@ -1959,7 +1932,6 @@ li.comment { padding: 2.4rem; } - /* Sidebars ---------------------------------------------------------------------------------------------------- */ @@ -2059,7 +2031,6 @@ Footer Widgets border: 1px solid #ddd; } - /* Site Footer ---------------------------------------------------------------------------------------------------- */ @@ -2090,7 +2061,6 @@ Site Footer margin-bottom: 0; } - /* General Components ---------------------------------------------------------------------------------------------------- */ @@ -2120,12 +2090,10 @@ table.ui-datepicker-calendar { margin-right: -125px; } - /* Specific Pages ---------------------------------------------------------------------------------------------------- */ - /* Media Queries ---------------------------------------------------------------------------------------------------- */ @@ -2178,6 +2146,7 @@ Media Queries /* Responsive Tables CSS --------------------------------------------- */ + @media (max-width: 600px) { table { @@ -2497,6 +2466,7 @@ Media Queries /* Non-Mobile Navigation --------------------------------------------- */ + #menu-toggle, .widget-area-toggle { display: none; @@ -2541,15 +2511,14 @@ Media Queries border-bottom-width: 0; } - /* Primary Navigation --------------------------------------------- */ + .nav-primary a { padding-right: 20px; padding-right: 2rem; } - /* Navigation Extras --------------------------------------------- */ @@ -2673,11 +2642,11 @@ Media Queries color: #333; } - /* Plugins --------------------------------------------- */ /* Events Manager */ + .em-calendar-wrapper .fullcalendar tr { display: table-row !important; }