【问题标题】:Wordpress Customize Image Control Not WorkingWordpress 自定义图像控件不起作用
【发布时间】:2015-06-21 05:03:11
【问题描述】:

我目前正在创建一个 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() 返回 'string(82) "http://localhost:8888/wp-content/themes/adenicboy-alpha/img/header/shield_text.png"' 所以我真的很困惑为什么这不起作用...

【问题讨论】:

    标签: php html wordpress customization


    【解决方案1】:

    起始锚标记缺少“

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

    到这里

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

    【讨论】:

    • 感谢您注意到这一点。不过,这只是一个复制和粘贴错误。
    【解决方案2】:

    我想出了一个解决方案!

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

    【讨论】:

    • 天啊!!你刚刚救了我,我从很多天前就遇到了这个问题,在谷歌或任何地方都找不到解决方案。我知道这个答案很旧,但我的案例是为什么 stackoverflow 必须永远存在的一个例子!非常感谢,对不起我的英语不好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多