Switch to storing logos by image ID and outputting them properly

This commit is contained in:
Braad Martin
2015-06-30 20:19:35 -07:00
parent 05448fdd0f
commit 8cd6b7ae9b
3 changed files with 42 additions and 29 deletions
+2 -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',
+10 -10
View File
@@ -55,44 +55,44 @@ function trestle_customizer_controls( $wp_customize ) {
// 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]',
) )
) )
); );
// 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]',
) )
) )
); );
+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 ) {