我正在寻找创建一个自定义功能,以便能够从“自定义”面板更改/加载新图像(这是因为我不会是管理网站的人,所以我正在尝试制作东西尽可能简单)。
我默认使用 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>
关于如何解决这个问题的任何想法?