【问题标题】:How can I allow users to change widget header color?如何允许用户更改小部件标题颜色?
【发布时间】:2013-09-30 10:49:58
【问题描述】:

所以我正在构建这个主题,我希望允许用户更改小部件标题的背景颜色。因此,在我注册侧边栏的 functions.php 中,我得到了:

      'before_widget' => '',
      'after_widget' => '',
      'before_title' => '<div class="widget-header"><p>',
      'after_title' => '</p></div>',

为了让人们改变我添加的标题的背景颜色:

'before title' => '<div class="widget-header" style="background: #ccc;"><p>'

这仍然有效。我创建了一个主题选项页面,人们可以在其中选择颜色,并将代码更改为:

'before title' => '<div class="widget-header" style="background: <?php echo get_option('shoboto_maincolor'); ?>;"><p>'

现在当我保存时,页面变为空白。我完全肯定 style="background: ;"是正确的,因为它改变了网站徽标的颜色,其代码位于 header.php 中。所以我认为这与加载wordpress元素的顺序有关。我对吗?我的意思是标题(我认为)在我的选项页面传递值之后加载,但 functions.php 加载得更早。我对吗?如果是这样,我该如何解决这个问题?您知道允许用户更改颜色的其他方法吗?

【问题讨论】:

  • 该行应为:'before title' =&gt; '&lt;div class="widget-header" style="background:'.get_option('shoboto_maincolor').'"&gt;&lt;p&gt;'。您仍然必须确保 get_option('shoboto_maincolor') 返回一个有效值。
  • 感谢您的提示 - 它就像一个魅力

标签: php wordpress function


【解决方案1】:

如果你看一下这条线

   'before title' => '<div class="widget-header" style="background: <?php echo get_option('shoboto_maincolor'); ?>;"><p>'

您会注意到您的 php 代码的其余部分中有一个 &lt;?php ?&gt;

所以最终结果看起来像

<?php .... <?php ... ?> ... ?>

这将输出一个错误,并且由于默认情况下已关闭调试,因此您将获得白页,因为文档无法解析...

所以你需要将该行更改为

'before title' => '<div class="widget-header" style="background:' . get_option('shoboto_maincolor') . '"><p>',

为了摆脱解析错误

【讨论】:

  • 非常感谢 - 回答和全面的解释。你帮了我很多!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-23
  • 2018-05-04
  • 1970-01-01
  • 2011-04-12
  • 2010-10-23
  • 2013-11-30
  • 2015-10-10
相关资源
最近更新 更多