Php Wordpress自定义图像控件不工作
我目前正在创建一个Wordpress主题,我遇到了一个障碍。我正在使用主题定制页面上传一个主徽标和一个手机徽标。这些标志的,然后应该在页面上使用。我让它工作了二十分钟,但它停止了工作 下面是function.php中的自定义注册函数:Php Wordpress自定义图像控件不工作,php,html,wordpress,customization,Php,Html,Wordpress,Customization,我目前正在创建一个Wordpress主题,我遇到了一个障碍。我正在使用主题定制页面上传一个主徽标和一个手机徽标。这些标志的,然后应该在页面上使用。我让它工作了二十分钟,但它停止了工作 下面是function.php中的自定义注册函数: function wpalpha_customize_register( $wp_customize ) { $wp_customize->add_section( 'wpalpha_logo_section' , array( 'title'
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="">
这张图片显示,这些选项在自定义页面上起作用,但我的徽标不再显示(左上角的小框应该是徽标):(显然,我不够好,本网站无法发布图片,因此您必须关注此链接…)
请帮忙!
谢谢
更新#1:
当我更改Wordpress后端站点上的徽标时,我的数据库似乎不再更新。我忘记更新选项了吗?我认为这是内置于这些功能中的
更新#2:
这个var_dump()返回“string(82)”,所以我真的很困惑为什么它不起作用…开始锚标记缺少一个“”>
我想出了一个解决方案 通过调用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_主题上使用var_dump()。感谢您注意到这一点。这只是一个复制和派斯特错误。天哪!!你刚刚救了我,我从很多天前就开始处理这个问题,在谷歌或任何地方都找不到解决方案。我知道这个答案很古老,但我的案例就是为什么stackoverflow必须永远存在的一个例子!。非常感谢,很抱歉我的英语不好。
a class="navbar-brand" href="<?php echo home_url(); ?>">
<a class="navbar-brand" href="<?php echo home_url(); ?>">
<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>