我希望创建一个自定义功能,以便能够从"自定义"更改/加载新图像。小组(这是因为我不会成为管理网站的人,所以我试图让事情变得尽可能简单。)
我默认使用了adamos主题(link),然后我开始为我的目的定制它。 在 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>
有关如何解决此问题的想法吗?