2015-06-21 86 views
0

我目前正在创建一个Wordpress主题,我遇到了一个障碍。我正在使用主题自定义页面上传主徽标和移动徽标。那些标志应该在页面上使用。我得到了它的工作二十分钟,但他们停止工作。Wordpress自定义图像控制不工作

这里是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=""> 

此图显示选项在自定义页面上工作,但我的徽标不再显示(左上角的小方块应该是标志):(显然,我不够好,因为这个网站发布了一张图片,所以你会按照这个链接...)

http://i.stack.imgur.com/C38O6.jpg

请帮忙! 感谢

更新#1:

我看起来像当我改变在WordPress的后台的网站的徽标我的数据库不再被更新。我忘记更新选项了吗?我认为这是建立在这些功能。

更新#2:

<?php echo var_dump(get_theme_mod('wpalpha_desktop_logo')); ?> 

此的var_dump()返回 '字符串(82) “http://localhost:8888/wp-content/themes/adenicboy-alpha/img/header/shield_text.png”' 所以我真的很困惑,为什么这是不工作...

回答

0

,我想出了一个解决方案!

我能够通过调用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()。

0

开幕锚标记缺少“<”。这可能会导致显示封闭内容的问题。尝试改变这种

a class="navbar-brand" href="<?php echo home_url(); ?>"> 

这个

<a class="navbar-brand" href="<?php echo home_url(); ?>"> 
+0

感谢您的注意。这只是一个副本和paiste错误,但。 – adenix