Wordpress 自定义图像控件不起作用
Wordpress Customize Image Control Not Working
我目前正在创建一个 Wordpress 主题,但 运行 遇到了麻烦。我正在使用主题自定义页面上传主徽标和移动徽标。然后应在页面上使用这些徽标。我让它工作了 20 分钟,但他们停止工作了。
这是我在 function.php 中自定义的注册函数:
function wpalpha_customize_register( $wp_customize ) {
$wp_customize->add_section( 'wpalpha_logo_section' , array(
'title' => __('Logos', 'wpalpha'),
'description' => __('Upload logos to replace the default site logos.'),
'panel' => 'design_settings',
'priority' => 10,
'capability' => 'edit_theme_options',
'theme_supports' => '',
) );
$wp_customize->add_setting('wpalpha_desktop_logo', array(
'type' => 'theme_mod',
'capability' => 'edit_theme_options',
'theme_supports' => '',
'default' => get_template_directory_uri().'/img/header/shield_text.png',
'sanitize_callback' => '',
'sanitize_js_callback' => '',
'transport' => 'refresh',
));
$wp_customize->add_control(new WP_Customize_Image_Control($wp_customize, 'wpalpha_desktop_logo', array(
'label' => __('Choose Logo', 'wpalpha'),
'section' => 'wpalpha_logo_section',
'settings' => 'wpalpha_desktop_logo',
'context' => 'wpalpha-desktop-logo',
)));
$wp_customize->add_setting('wpalpha_mobile_logo', array(
'type' => 'theme_mod',
'capability' => 'edit_theme_options',
'theme_supports' => '',
'default' => get_template_directory_uri().'/img/header/shield.png',
'sanitize_callback' => '',
'sanitize_js_callback' => '',
'transport' => 'refresh',
));
$wp_customize->add_control(new WP_Customize_Image_Control($wp_customize, 'wpalpha_mobile_logo', array(
'label' => __('Choose Logo', 'wpalpha'),
'section' => 'wpalpha_logo_section',
'settings' => 'wpalpha_mobile_logo',
'context' => 'wpalpha-mobile-logo',
)));
}
add_action('customize_register', 'wpalpha_customize_register');
这是我在 header.php 中使用它的地方:
<a class="navbar-brand" href="<?php echo home_url(); ?>">
<?php if(get_theme_mod('wpalpha_desktop_logo') != ''): ?>
<img class="desktop dlp_logo" src="<?php echo esc_url(get_theme_mod('wpaplpha_desktop_logo')); ?>">
<?php endif; ?>
<?php if(get_theme_mod('wpalpha_mobile_logo') != ''): ?>
<img class="mobile dlp_logo" src="<?php echo esc_url(get_theme_mod('wpaplpha_mobile_logo')); ?>">
<?php endif; ?>
</a>
这是我的代码输出的内容:
<img class="desktop dlp_logo" src="">
<img class="mobile dlp_logo" src="">
此图显示自定义页面上的选项有效,但我的徽标不再显示(左上角的小方框应该是徽标):(显然我做的不够好网站到 post 一张图片,这样你就可以关注这个 link...)
http://i.stack.imgur.com/C38O6.jpg
请帮忙!
谢谢
更新#1:
当我更改 Wordpress 后端站点上的徽标时,我的数据库似乎不再更新。我忘记更新选项了吗?我以为这些功能内置了。
更新#2:
<?php echo var_dump(get_theme_mod('wpalpha_desktop_logo')); ?>
这个 var_dump() returns 'string(82) "http://localhost:8888/wp-content/themes/adenicboy-alpha/img/header/shield_text.png"' 所以我真的很困惑为什么这不起作用...
起始锚标记缺少“<”。这可能会导致显示所附内容出现问题。尝试改变这个
a class="navbar-brand" href="<?php echo home_url(); ?>">
至此
<a class="navbar-brand" href="<?php echo home_url(); ?>">
我想出办法了!
我能够通过调用 get_theme_mod() 并将结果存储在字符串中而不是在 src 区域内调用它来使其工作。然后我将字符串回显到 src 区域。
<a class="navbar-brand" href="<?php echo home_url(); ?>">
<?php if(get_theme_mod('wpalpha_desktop_logo') != ''): ?>
<?php $wpalpha_desktop_logo = esc_url(get_theme_mod('wpalpha_desktop_logo')); ?>
<img class="desktop dlp_logo" src="<?php echo $wpalpha_desktop_logo; ?>">
<?php endif; ?>
<?php if(get_theme_mod('wpalpha_mobile_logo') != ''): ?>
<?php $wpalpha_mobile_logo = esc_url(get_theme_mod('wpalpha_mobile_logo')); ?>
<img class="mobile dlp_logo" src="<?php echo $wpalpha_mobile_logo; ?>">
<?php endif; ?>
</a>
如果有人遇到类似问题,我强烈建议您在 get_theme_mod() 上使用 var_dump()。
我目前正在创建一个 Wordpress 主题,但 运行 遇到了麻烦。我正在使用主题自定义页面上传主徽标和移动徽标。然后应在页面上使用这些徽标。我让它工作了 20 分钟,但他们停止工作了。
这是我在 function.php 中自定义的注册函数:
function wpalpha_customize_register( $wp_customize ) {
$wp_customize->add_section( 'wpalpha_logo_section' , array(
'title' => __('Logos', 'wpalpha'),
'description' => __('Upload logos to replace the default site logos.'),
'panel' => 'design_settings',
'priority' => 10,
'capability' => 'edit_theme_options',
'theme_supports' => '',
) );
$wp_customize->add_setting('wpalpha_desktop_logo', array(
'type' => 'theme_mod',
'capability' => 'edit_theme_options',
'theme_supports' => '',
'default' => get_template_directory_uri().'/img/header/shield_text.png',
'sanitize_callback' => '',
'sanitize_js_callback' => '',
'transport' => 'refresh',
));
$wp_customize->add_control(new WP_Customize_Image_Control($wp_customize, 'wpalpha_desktop_logo', array(
'label' => __('Choose Logo', 'wpalpha'),
'section' => 'wpalpha_logo_section',
'settings' => 'wpalpha_desktop_logo',
'context' => 'wpalpha-desktop-logo',
)));
$wp_customize->add_setting('wpalpha_mobile_logo', array(
'type' => 'theme_mod',
'capability' => 'edit_theme_options',
'theme_supports' => '',
'default' => get_template_directory_uri().'/img/header/shield.png',
'sanitize_callback' => '',
'sanitize_js_callback' => '',
'transport' => 'refresh',
));
$wp_customize->add_control(new WP_Customize_Image_Control($wp_customize, 'wpalpha_mobile_logo', array(
'label' => __('Choose Logo', 'wpalpha'),
'section' => 'wpalpha_logo_section',
'settings' => 'wpalpha_mobile_logo',
'context' => 'wpalpha-mobile-logo',
)));
}
add_action('customize_register', 'wpalpha_customize_register');
这是我在 header.php 中使用它的地方:
<a class="navbar-brand" href="<?php echo home_url(); ?>">
<?php if(get_theme_mod('wpalpha_desktop_logo') != ''): ?>
<img class="desktop dlp_logo" src="<?php echo esc_url(get_theme_mod('wpaplpha_desktop_logo')); ?>">
<?php endif; ?>
<?php if(get_theme_mod('wpalpha_mobile_logo') != ''): ?>
<img class="mobile dlp_logo" src="<?php echo esc_url(get_theme_mod('wpaplpha_mobile_logo')); ?>">
<?php endif; ?>
</a>
这是我的代码输出的内容:
<img class="desktop dlp_logo" src="">
<img class="mobile dlp_logo" src="">
此图显示自定义页面上的选项有效,但我的徽标不再显示(左上角的小方框应该是徽标):(显然我做的不够好网站到 post 一张图片,这样你就可以关注这个 link...)
http://i.stack.imgur.com/C38O6.jpg
请帮忙! 谢谢
更新#1:
当我更改 Wordpress 后端站点上的徽标时,我的数据库似乎不再更新。我忘记更新选项了吗?我以为这些功能内置了。
更新#2:
<?php echo var_dump(get_theme_mod('wpalpha_desktop_logo')); ?>
这个 var_dump() returns 'string(82) "http://localhost:8888/wp-content/themes/adenicboy-alpha/img/header/shield_text.png"' 所以我真的很困惑为什么这不起作用...
起始锚标记缺少“<”。这可能会导致显示所附内容出现问题。尝试改变这个
a class="navbar-brand" href="<?php echo home_url(); ?>">
至此
<a class="navbar-brand" href="<?php echo home_url(); ?>">
我想出办法了!
我能够通过调用 get_theme_mod() 并将结果存储在字符串中而不是在 src 区域内调用它来使其工作。然后我将字符串回显到 src 区域。
<a class="navbar-brand" href="<?php echo home_url(); ?>">
<?php if(get_theme_mod('wpalpha_desktop_logo') != ''): ?>
<?php $wpalpha_desktop_logo = esc_url(get_theme_mod('wpalpha_desktop_logo')); ?>
<img class="desktop dlp_logo" src="<?php echo $wpalpha_desktop_logo; ?>">
<?php endif; ?>
<?php if(get_theme_mod('wpalpha_mobile_logo') != ''): ?>
<?php $wpalpha_mobile_logo = esc_url(get_theme_mod('wpalpha_mobile_logo')); ?>
<img class="mobile dlp_logo" src="<?php echo $wpalpha_mobile_logo; ?>">
<?php endif; ?>
</a>
如果有人遇到类似问题,我强烈建议您在 get_theme_mod() 上使用 var_dump()。