0

我正在寻找创建一个自定义功能,以便能够从“自定义”面板更改/加载新图像(这是因为我不会是管理网站的人,所以我正在尝试制作东西尽可能简单)。

我默认使用 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 />

这个功能实际上不起作用,我也不知道为什么,因为如果我尝试加载图像它会起作用(它们已加载,但没有显示这种方式)。尝试一些调试(参见下面的代码)我发现使用get_theme_mod WordPress 认为 gb_logo 是一个布尔变量。

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

关于如何解决这个问题的任何想法?

4

0 回答 0