7 Commits

Author SHA1 Message Date
MickeyKay a6b0a37771 Update jQuery to add +/- signs to mobile menu. Fixes #33. 2015-07-06 11:59:03 -07:00
Mickey Kay eb655a32e1 Merge pull request #32 from MIGHTYminnow/retina-logos
Add support for retina logos
2015-07-01 19:30:08 -07:00
Braad c8125f0d91 Merge pull request #30 from MIGHTYminnow/update-bfal
Update Better Font Awesome Library to 1.3.4
2015-06-30 22:08:56 -07:00
Braad Martin 81b17fd9b7 Add RICG Responsive Images to our recommended plugins list 2015-06-30 20:53:35 -07:00
Braad Martin 3e6432dc8d Add a mime type check, add an extra check on post revision number, and cleanup formatting 2015-06-30 20:37:00 -07:00
Braad Martin 8cd6b7ae9b Switch to storing logos by image ID and outputting them properly 2015-06-30 20:19:35 -07:00
Braad Martin 05448fdd0f Bump version number 2015-06-30 20:10:36 -07:00
5 changed files with 176 additions and 154 deletions
+1 -1
View File
@@ -49,7 +49,7 @@ function trestle_theme_setup() {
// Child theme definitions (do not remove). // Child theme definitions (do not remove).
define( 'TRESTLE_THEME_NAME', 'Trestle' ); define( 'TRESTLE_THEME_NAME', 'Trestle' );
define( 'TRESTLE_THEME_URL', 'http://demo.mightyminnow.com/theme/trestle/' ); define( 'TRESTLE_THEME_URL', 'http://demo.mightyminnow.com/theme/trestle/' );
define( 'TRESTLE_THEME_VERSION', '2.0.1' ); define( 'TRESTLE_THEME_VERSION', '2.1.0' );
define( 'TRESTLE_SETTINGS_FIELD', 'trestle-settings' ); define( 'TRESTLE_SETTINGS_FIELD', 'trestle-settings' );
// Setup default theme settings. // Setup default theme settings.
+8 -2
View File
@@ -19,8 +19,8 @@ function trestle_settings_defaults() {
// Trestle default key/value pairs. // Trestle default key/value pairs.
$trestle_defaults = array( $trestle_defaults = array(
'layout' => 'solid', 'layout' => 'solid',
'logo_url' => '', 'logo_id' => '',
'logo_url_mobile' => '', 'logo_id_mobile' => '',
'favicon_url' => '', 'favicon_url' => '',
'nav_primary_location' => 'full', 'nav_primary_location' => 'full',
'mobile_nav_toggle' => 'small-icon', 'mobile_nav_toggle' => 'small-icon',
@@ -210,6 +210,12 @@ function trestle_register_required_plugins() {
'required' => false, 'required' => false,
), ),
array(
'name' => 'RICG Responsive Images',
'slug' => 'ricg-responsive-images',
'required' => false,
),
array( array(
'name' => 'Widget Context', 'name' => 'Widget Context',
'slug' => 'widget-context', 'slug' => 'widget-context',
+135 -132
View File
@@ -25,8 +25,8 @@ function trestle_customizer_controls( $wp_customize ) {
$wp_customize->add_section( $wp_customize->add_section(
'trestle_settings_section', 'trestle_settings_section',
array( array(
'title' => __( 'Trestle Settings', 'trestle' ), 'title' => __( 'Trestle Settings', 'trestle' ),
'priority' => 160, 'priority' => 160,
) )
); );
@@ -34,65 +34,67 @@ function trestle_customizer_controls( $wp_customize ) {
$wp_customize->add_setting( $wp_customize->add_setting(
'trestle-settings[layout]', 'trestle-settings[layout]',
array( array(
'default' => trestle_get_option( 'layout' ), 'default' => trestle_get_option( 'layout' ),
'type' => 'option', 'type' => 'option',
'capability' => 'edit_theme_options', 'capability' => 'edit_theme_options',
) )
); );
$wp_customize->add_control( $wp_customize->add_control(
'trestle_layout_control', 'trestle_layout_control',
array( array(
'section' => 'trestle_settings_section', 'section' => 'trestle_settings_section',
'settings' => 'trestle-settings[layout]', 'settings' => 'trestle-settings[layout]',
'label' => __( 'Layout', 'trestle' ), 'label' => __( 'Layout', 'trestle' ),
'type' => 'radio', 'type' => 'radio',
'choices' => array( 'choices' => array(
'bubble' => __( 'Bubble', 'trestle' ), 'bubble' => __( 'Bubble', 'trestle' ),
'solid' => __( 'Solid', 'trestle' ), 'solid' => __( 'Solid', 'trestle' ),
) )
) )
); );
// Upload a logo. // Upload a logo.
$wp_customize->add_setting( $wp_customize->add_setting(
'trestle-settings[logo_url]', 'trestle-settings[logo_id]',
array( array(
'default' => trestle_get_option( 'logo_url' ), 'default' => trestle_get_option( 'logo_id' ),
'type' => 'option', 'type' => 'option',
'capability' => 'edit_theme_options', 'capability' => 'edit_theme_options',
'sanitize_callback' => 'esc_url_raw', 'sanitize_callback' => 'absint',
) )
); );
$wp_customize->add_control( $wp_customize->add_control(
new WP_Customize_Image_Control( new WP_Customize_Media_Control(
$wp_customize, $wp_customize,
'trestle_logo_control', 'trestle_logo_control',
array( array(
'label' => __( 'Upload a logo', 'trestle' ), 'label' => __( 'Upload a logo', 'trestle' ),
'section' => 'trestle_settings_section', 'section' => 'trestle_settings_section',
'settings' => 'trestle-settings[logo_url]', 'settings' => 'trestle-settings[logo_id]',
'mime_type' => 'image',
) )
) )
); );
// Upload a mobile logo. // Upload a mobile logo.
$wp_customize->add_setting( $wp_customize->add_setting(
'trestle-settings[logo_url_mobile]', 'trestle-settings[logo_id_mobile]',
array( array(
'default' => trestle_get_option( 'logo_url_mobile' ), 'default' => trestle_get_option( 'logo_id_mobile' ),
'type' => 'option', 'type' => 'option',
'capability' => 'edit_theme_options', 'capability' => 'edit_theme_options',
'sanitize_callback' => 'esc_url_raw', 'sanitize_callback' => 'absint',
) )
); );
$wp_customize->add_control( $wp_customize->add_control(
new WP_Customize_Image_Control( new WP_Customize_Media_Control(
$wp_customize, $wp_customize,
'trestle_mobile_logo_control', 'trestle_mobile_logo_control',
array( array(
'label' => __( 'Upload a mobile logo', 'trestle' ), 'label' => __( 'Upload a mobile logo', 'trestle' ),
'section' => 'trestle_settings_section', 'section' => 'trestle_settings_section',
'settings' => 'trestle-settings[logo_url_mobile]', 'settings' => 'trestle-settings[logo_id_mobile]',
'mime_type' => 'image',
) )
) )
); );
@@ -101,10 +103,10 @@ function trestle_customizer_controls( $wp_customize ) {
$wp_customize->add_setting( $wp_customize->add_setting(
'trestle-settings[favicon_url]', 'trestle-settings[favicon_url]',
array( array(
'default' => trestle_get_option( 'favicon_url' ), 'default' => trestle_get_option( 'favicon_url' ),
'type' => 'option', 'type' => 'option',
'capability' => 'edit_theme_options', 'capability' => 'edit_theme_options',
'sanitize_callback' => 'esc_url_raw', 'sanitize_callback' => 'esc_url_raw',
) )
); );
$wp_customize->add_control( $wp_customize->add_control(
@@ -112,9 +114,9 @@ function trestle_customizer_controls( $wp_customize ) {
$wp_customize, $wp_customize,
'trestle_favicon_control', 'trestle_favicon_control',
array( array(
'label' => __( 'Upload a favicon', 'trestle' ), 'label' => __( 'Upload a favicon', 'trestle' ),
'section' => 'trestle_settings_section', 'section' => 'trestle_settings_section',
'settings' => 'trestle-settings[favicon_url]', 'settings' => 'trestle-settings[favicon_url]',
) )
) )
); );
@@ -123,21 +125,21 @@ function trestle_customizer_controls( $wp_customize ) {
$wp_customize->add_setting( $wp_customize->add_setting(
'trestle-settings[nav_primary_location]', 'trestle-settings[nav_primary_location]',
array( array(
'default' => trestle_get_option( 'nav_primary_location' ), 'default' => trestle_get_option( 'nav_primary_location' ),
'type' => 'option', 'type' => 'option',
'capability' => 'edit_theme_options', 'capability' => 'edit_theme_options',
) )
); );
$wp_customize->add_control( $wp_customize->add_control(
'trestle_nav_primary_location_control', 'trestle_nav_primary_location_control',
array( array(
'section' => 'trestle_settings_section', 'section' => 'trestle_settings_section',
'settings' => 'trestle-settings[nav_primary_location]', 'settings' => 'trestle-settings[nav_primary_location]',
'label' => __( 'Menu style', 'trestle' ), 'label' => __( 'Menu style', 'trestle' ),
'type' => 'select', 'type' => 'select',
'choices' => array( 'choices' => array(
'full' => __( 'Full Width', 'trestle' ), 'full' => __( 'Full Width', 'trestle' ),
'header' => __( 'Header Right', 'trestle' ), 'header' => __( 'Header Right', 'trestle' ),
) )
) )
); );
@@ -146,9 +148,9 @@ function trestle_customizer_controls( $wp_customize ) {
$wp_customize->add_setting( $wp_customize->add_setting(
'trestle-settings[mobile_nav_toggle]', 'trestle-settings[mobile_nav_toggle]',
array( array(
'default' => trestle_get_option( 'mobile_nav_toggle' ), 'default' => trestle_get_option( 'mobile_nav_toggle' ),
'type' => 'option', 'type' => 'option',
'capability' => 'edit_theme_options', 'capability' => 'edit_theme_options',
) )
); );
$wp_customize->add_control( $wp_customize->add_control(
@@ -159,8 +161,8 @@ function trestle_customizer_controls( $wp_customize ) {
'label' => __( 'Mobile Menu Toggle', 'trestle' ), 'label' => __( 'Mobile Menu Toggle', 'trestle' ),
'type' => 'select', 'type' => 'select',
'choices' => array( 'choices' => array(
'small-icon' => __( 'Small Icon', 'trestle' ), 'small-icon' => __( 'Small Icon', 'trestle' ),
'big-button' => __( 'Big Button', 'trestle' ), 'big-button' => __( 'Big Button', 'trestle' ),
) )
) )
); );
@@ -169,9 +171,9 @@ function trestle_customizer_controls( $wp_customize ) {
$wp_customize->add_setting( $wp_customize->add_setting(
'trestle-settings[search_in_nav]', 'trestle-settings[search_in_nav]',
array( array(
'default' => trestle_get_option( 'search_in_nav' ), 'default' => trestle_get_option( 'search_in_nav' ),
'type' => 'option', 'type' => 'option',
'capability' => 'edit_theme_options', 'capability' => 'edit_theme_options',
) )
); );
$wp_customize->add_control( $wp_customize->add_control(
@@ -180,7 +182,7 @@ function trestle_customizer_controls( $wp_customize ) {
'section' => 'trestle_settings_section', 'section' => 'trestle_settings_section',
'settings' => 'trestle-settings[search_in_nav]', 'settings' => 'trestle-settings[search_in_nav]',
'label' => __( 'Add search to mobile navigation', 'trestle' ), '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( $wp_customize->add_setting(
'trestle-settings[read_more_text]', 'trestle-settings[read_more_text]',
array( array(
'default' => trestle_get_option( 'read_more_text' ), 'default' => trestle_get_option( 'read_more_text' ),
'type' => 'option', 'type' => 'option',
'capability' => 'edit_theme_options', 'capability' => 'edit_theme_options',
'sanitize_callback' => 'wp_kses_post', 'sanitize_callback' => 'wp_kses_post',
) )
); );
$wp_customize->add_control( $wp_customize->add_control(
'trestle_read_more_text_control', 'trestle_read_more_text_control',
array( array(
'section' => 'trestle_settings_section', 'section' => 'trestle_settings_section',
'settings' => 'trestle-settings[read_more_text]', 'settings' => 'trestle-settings[read_more_text]',
'label' => __( 'Custom read more link text', 'trestle' ), 'label' => __( 'Custom read more link text', 'trestle' ),
) )
); );
@@ -207,31 +209,32 @@ function trestle_customizer_controls( $wp_customize ) {
$wp_customize->add_setting( $wp_customize->add_setting(
'trestle-settings[revisions_number]', 'trestle-settings[revisions_number]',
array( array(
'default' => trestle_get_option( 'revisions_number' ), 'default' => trestle_get_option( 'revisions_number' ),
'type' => 'option', 'type' => 'option',
'capability' => 'edit_theme_options', 'capability' => 'edit_theme_options',
'sanitize_callback' => 'absint',
) )
); );
$wp_customize->add_control( $wp_customize->add_control(
'trestle_revisions_number_control', 'trestle_revisions_number_control',
array( array(
'section' => 'trestle_settings_section', 'section' => 'trestle_settings_section',
'settings' => 'trestle-settings[revisions_number]', 'settings' => 'trestle-settings[revisions_number]',
'label' => __( 'Number of post revisions', 'trestle' ), 'label' => __( 'Number of post revisions', 'trestle' ),
'type' => 'select', 'type' => 'select',
'choices' => array( 'choices' => array(
'-1' => __( 'Unlimited', 'trestle' ), '-1' => __( 'Unlimited', 'trestle' ),
'0' => '0', '0' => '0',
'1' => '1', '1' => '1',
'2' => '2', '2' => '2',
'3' => '3', '3' => '3',
'4' => '4', '4' => '4',
'5' => '5', '5' => '5',
'6' => '6', '6' => '6',
'7' => '7', '7' => '7',
'8' => '8', '8' => '8',
'9' => '9', '9' => '9',
'10' => '10', '10' => '10',
) )
) )
); );
@@ -240,26 +243,26 @@ function trestle_customizer_controls( $wp_customize ) {
$wp_customize->add_setting( $wp_customize->add_setting(
'trestle-settings[footer_widgets_number]', 'trestle-settings[footer_widgets_number]',
array( array(
'default' => trestle_get_option( 'footer_widgets_number' ), 'default' => trestle_get_option( 'footer_widgets_number' ),
'type' => 'option', 'type' => 'option',
'capability' => 'edit_theme_options', 'capability' => 'edit_theme_options',
) )
); );
$wp_customize->add_control( $wp_customize->add_control(
'trestle_footer_widgets_number_control', 'trestle_footer_widgets_number_control',
array( array(
'section' => 'trestle_settings_section', 'section' => 'trestle_settings_section',
'settings' => 'trestle-settings[footer_widgets_number]', 'settings' => 'trestle-settings[footer_widgets_number]',
'label' => __( 'Number of footer widgets', 'trestle' ), 'label' => __( 'Number of footer widgets', 'trestle' ),
'type' => 'select', 'type' => 'select',
'choices' => array( 'choices' => array(
'0' => '0', '0' => '0',
'1' => '1', '1' => '1',
'2' => '2', '2' => '2',
'3' => '3', '3' => '3',
'4' => '4', '4' => '4',
'5' => '5', '5' => '5',
'6' => '6', '6' => '6',
) )
) )
); );
@@ -268,17 +271,17 @@ function trestle_customizer_controls( $wp_customize ) {
$wp_customize->add_setting( $wp_customize->add_setting(
'trestle-settings[link_icons_title]', 'trestle-settings[link_icons_title]',
array( array(
'default' => '', 'default' => '',
'type' => 'option', 'type' => 'option',
) )
); );
$wp_customize->add_control( $wp_customize->add_control(
'trestle_link_icons_title', 'trestle_link_icons_title',
array( array(
'section' => 'trestle_settings_section', 'section' => 'trestle_settings_section',
'settings' => 'trestle-settings[link_icons_title]', 'settings' => 'trestle-settings[link_icons_title]',
'label' => __( 'Icon links', 'trestle' ), 'label' => __( 'Icon links', 'trestle' ),
'type' => 'hidden', 'type' => 'hidden',
) )
); );
@@ -286,18 +289,18 @@ function trestle_customizer_controls( $wp_customize ) {
$wp_customize->add_setting( $wp_customize->add_setting(
'trestle-settings[external_link_icons]', 'trestle-settings[external_link_icons]',
array( array(
'default' => trestle_get_option( 'external_link_icons' ), 'default' => trestle_get_option( 'external_link_icons' ),
'type' => 'option', 'type' => 'option',
'capability' => 'edit_theme_options', 'capability' => 'edit_theme_options',
) )
); );
$wp_customize->add_control( $wp_customize->add_control(
'trestle_external_link_icons', 'trestle_external_link_icons',
array( array(
'section' => 'trestle_settings_section', 'section' => 'trestle_settings_section',
'settings' => 'trestle-settings[external_link_icons]', 'settings' => 'trestle-settings[external_link_icons]',
'label' => __( 'Add icons to external links', 'trestle' ), 'label' => __( 'Add icons to external links', 'trestle' ),
'type' => 'checkbox', 'type' => 'checkbox',
) )
); );
@@ -305,18 +308,18 @@ function trestle_customizer_controls( $wp_customize ) {
$wp_customize->add_setting( $wp_customize->add_setting(
'trestle-settings[email_link_icons]', 'trestle-settings[email_link_icons]',
array( array(
'default' => trestle_get_option( 'email_link_icons' ), 'default' => trestle_get_option( 'email_link_icons' ),
'type' => 'option', 'type' => 'option',
'capability' => 'edit_theme_options', 'capability' => 'edit_theme_options',
) )
); );
$wp_customize->add_control( $wp_customize->add_control(
'trestle_email_link_icons', 'trestle_email_link_icons',
array( array(
'section' => 'trestle_settings_section', 'section' => 'trestle_settings_section',
'settings' => 'trestle-settings[email_link_icons]', 'settings' => 'trestle-settings[email_link_icons]',
'label' => __( 'Add icons to email links', 'trestle' ), 'label' => __( 'Add icons to email links', 'trestle' ),
'type' => 'checkbox', 'type' => 'checkbox',
) )
); );
@@ -324,18 +327,18 @@ function trestle_customizer_controls( $wp_customize ) {
$wp_customize->add_setting( $wp_customize->add_setting(
'trestle-settings[pdf_link_icons]', 'trestle-settings[pdf_link_icons]',
array( array(
'default' => trestle_get_option( 'pdf_link_icons' ), 'default' => trestle_get_option( 'pdf_link_icons' ),
'type' => 'option', 'type' => 'option',
'capability' => 'edit_theme_options', 'capability' => 'edit_theme_options',
) )
); );
$wp_customize->add_control( $wp_customize->add_control(
'trestle_pdf_link_icons', 'trestle_pdf_link_icons',
array( array(
'section' => 'trestle_settings_section', 'section' => 'trestle_settings_section',
'settings' => 'trestle-settings[pdf_link_icons]', 'settings' => 'trestle-settings[pdf_link_icons]',
'label' => __( 'Add icons to .pdf links', 'trestle' ), 'label' => __( 'Add icons to .pdf links', 'trestle' ),
'type' => 'checkbox', 'type' => 'checkbox',
) )
); );
@@ -343,18 +346,18 @@ function trestle_customizer_controls( $wp_customize ) {
$wp_customize->add_setting( $wp_customize->add_setting(
'trestle-settings[doc_link_icons]', 'trestle-settings[doc_link_icons]',
array( array(
'default' => trestle_get_option( 'doc_link_icons' ), 'default' => trestle_get_option( 'doc_link_icons' ),
'type' => 'option', 'type' => 'option',
'capability' => 'edit_theme_options', 'capability' => 'edit_theme_options',
) )
); );
$wp_customize->add_control( $wp_customize->add_control(
'trestle_doc_link_icons', 'trestle_doc_link_icons',
array( array(
'section' => 'trestle_settings_section', 'section' => 'trestle_settings_section',
'settings' => 'trestle-settings[doc_link_icons]', 'settings' => 'trestle-settings[doc_link_icons]',
'label' => __( 'Add icons to .doc links', 'trestle' ), 'label' => __( 'Add icons to .doc links', 'trestle' ),
'type' => 'checkbox', 'type' => 'checkbox',
) )
); );
+30 -17
View File
@@ -216,42 +216,55 @@ add_filter( 'genesis_seo_title', 'trestle_do_logos', 10, 3 );
*/ */
function trestle_do_logos( $title, $inside, $wrap ) { function trestle_do_logos( $title, $inside, $wrap ) {
$logo_url = trestle_get_option( 'logo_url' ); $logo_id = trestle_get_option( 'logo_id' );
$logo_url_mobile = trestle_get_option( 'logo_url_mobile' ); $logo_id_mobile = trestle_get_option( 'logo_id_mobile' );
$logo_html = ''; $logo_html = '';
// Regular logo. // Regular logo.
if ( $logo_url ) { if ( $logo_id ) {
// Default logo class. // Default logo classes.
$classes = array('logo-full'); $classes = array(
'logo',
'logo-full'
);
// If no mobile logo is specified, make regular logo act as mobile logo too. // If no mobile logo is specified, make regular logo act as mobile logo too.
if( ! $logo_url_mobile ) if( ! $logo_id_mobile ) {
$classes[] = 'show'; $classes[] = 'show';
}
$logo_html .= sprintf( '<img class="logo %s" alt="%s" src="%s" />', // Prepare the classes.
implode(' ', $classes), $logo_attr = array(
esc_attr( get_bloginfo( 'name' ) ), 'class' => implode( $classes, ' ' ),
$logo_url
); );
// Build the <img> tag.
$logo_html .= wp_get_attachment_image( $logo_id, 'full', false, $logo_attr );
} }
// Mobile logo. // Mobile logo.
if ( $logo_url_mobile ) { if ( $logo_id_mobile ) {
// Default mobile logo class. // 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 no regular logo is specified, make mobile logo act as regular logo too.
if( ! $logo_url ) if( ! $logo_id )
$classes[] = 'show'; $classes[] = 'show';
$logo_html .= sprintf( '<img class="logo %s" alt="%s" src="%s" />', // Prepare the classes.
implode(' ', $classes), $logo_attr = array(
esc_attr( get_bloginfo( 'name' ) ), 'class' => implode( $classes, ' ' ),
$logo_url_mobile
); );
// Build the <img> tag.
$logo_html .= wp_get_attachment_image( $logo_id_mobile, 'full', false, $logo_attr );
} }
if ( $logo_html ) { if ( $logo_html ) {
+2 -2
View File
@@ -107,8 +107,8 @@ jQuery( document ).ready( function( $ ) {
var openIcon = '-'; var openIcon = '-';
// Insert the icons into the nav where appropriate. // 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( '<a class="sub-icon" href="#">' + closedIcon + '</a>' ); $( '.nav-primary' ).find( '.genesis-nav-menu .parent:not( [class*="current"] ) > a' ).after( '<a class="sub-icon" href="#">' + closedIcon + '</a>' );
$( '.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( '<a class="sub-icon" href="#">' + openIcon + '</a>' ); $( '.nav-primary' ).find( '.genesis-nav-menu .parent[class*="current"] > a' ).after( '<a class="sub-icon" href="#">' + openIcon + '</a>' );
// Mobile navigation expand/contract functionality. // Mobile navigation expand/contract functionality.
$( '.sub-icon' ).click( function( event ) { $( '.sub-icon' ).click( function( event ) {