Пользовательская функция для добавления вторичного логотипа

Я пытаюсь создать пользовательскую функцию, чтобы иметь возможность изменять / загружать новое изображение с панели "Настройка" (это потому, что я не буду управлять сайтом, поэтому я пытаюсь что-то сделать как можно проще).

По умолчанию я использовал тему adamos ( ссылка), а затем начал настраивать ее для своих целей. В functions.php я добавил следующий код:

function gb_theme_customizer( $wp_customize ) {

   $wp_customize->add_section( 'gb_logo_section' , array(
    'title'       => __( 'Gb\'s Logo', 'gb_logo' ),
    'priority'    => 31,
    'description' => 'Upload a new logo for Gb to be displayed above the left menu',
) );

   $wp_customize->add_setting( 
        'gb_logo',
        array(
            'sanitize_callback' => 'gb_sanitize_upload',
        )
    );

$wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize, 'gb_logo', array(
    'label'    => __( 'Gb\'s Logo', 'gb_logo' ),
    'section'  => 'gb_logo_section',
    'settings' => 'gb_logo',
) ) );


}
add_action('customize_register', 'gb_theme_customizer');

Это было сделано путем копирования функции темы по умолчанию adamos_theme_customizer, которая все еще находится выше этой (мне нужны обе функции).

Для вызова функции я использовал следующий код:

<!--TEST-->
<?php if ( get_theme_mod('gb_logo') ) : ?>
<div class="test">
<img src="<?php echo get_theme_mod( 'gb_logo' ); ?>" alt="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>">
</div>
<?php endif; ?>
<br />

This function actually doesn't work and I don't really know why, because if I try to load images it works (they're loaded, but neither this way are shown). Trying some debugging (see the code below) I found that with get_theme_mod WordPress thinks that gb_logo is a boolean variable.

<div id="test" style="border: 2px solid black"><?php $mods = get_option('gb_logo');
              var_dump($mods);?></div>

Есть идеи о том, как это исправить?

0 ответов

Другие вопросы по тегам