From 8cd6b7ae9b4ddcff7333b9e26c856d2cd305aa2f Mon Sep 17 00:00:00 2001 From: Braad Martin Date: Tue, 30 Jun 2015 20:19:35 -0700 Subject: [PATCH] Switch to storing logos by image ID and outputting them properly --- includes/admin/admin.php | 4 +-- includes/admin/customizer.php | 20 +++++------ includes/functions/theme-functions.php | 47 ++++++++++++++++---------- 3 files changed, 42 insertions(+), 29 deletions(-) diff --git a/includes/admin/admin.php b/includes/admin/admin.php index 26e95f0..e5a8003 100755 --- a/includes/admin/admin.php +++ b/includes/admin/admin.php @@ -19,8 +19,8 @@ function trestle_settings_defaults() { // Trestle default key/value pairs. $trestle_defaults = array( 'layout' => 'solid', - 'logo_url' => '', - 'logo_url_mobile' => '', + 'logo_id' => '', + 'logo_id_mobile' => '', 'favicon_url' => '', 'nav_primary_location' => 'full', 'mobile_nav_toggle' => 'small-icon', diff --git a/includes/admin/customizer.php b/includes/admin/customizer.php index 3416945..2f08b23 100755 --- a/includes/admin/customizer.php +++ b/includes/admin/customizer.php @@ -55,44 +55,44 @@ function trestle_customizer_controls( $wp_customize ) { // Upload a logo. $wp_customize->add_setting( - 'trestle-settings[logo_url]', + 'trestle-settings[logo_id]', array( - 'default' => trestle_get_option( 'logo_url' ), + 'default' => trestle_get_option( 'logo_id' ), 'type' => 'option', 'capability' => 'edit_theme_options', - 'sanitize_callback' => 'esc_url_raw', + '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]', + 'settings' => 'trestle-settings[logo_id]', ) ) ); // 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' ), + 'default' => trestle_get_option( 'logo_id_mobile' ), 'type' => 'option', 'capability' => 'edit_theme_options', - 'sanitize_callback' => 'esc_url_raw', + '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]', + 'settings' => 'trestle-settings[logo_id_mobile]', ) ) ); diff --git a/includes/functions/theme-functions.php b/includes/functions/theme-functions.php index 0a5bc82..1dc7163 100755 --- a/includes/functions/theme-functions.php +++ b/includes/functions/theme-functions.php @@ -216,42 +216,55 @@ 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 ) {