0

所以我正在构建这个主题,我希望允许用户更改小部件标题的背景颜色。因此,在我注册侧边栏的 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 加载得更早。我对吗?如果是这样,我该如何解决这个问题?您知道允许用户更改颜色的任何其他方法吗?

4

1 回答 1

1

如果你看看这条线

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

你会注意到你<?php ?>的 php 代码的其余部分

所以最终结果看起来像

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

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

所以你需要将该行更改为

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

为了摆脱解析错误

于 2013-09-30T02:49:58.023 回答