PHP Wordpress 插件变量不呼应内联样式

PHP Wordpress Plugin Variable Not Echoing out Inline Style

我正在开发一个 Wordpress 插件,它有一个简码,我用它来将内容打印到 page/post。

在我的插件文件中,我启动了所有菜单页面和设置,我在插件管理页面中有 2 个设置,其中之一是品牌颜色,因此用户可以更改短代码吐出的表单的品牌颜色。

数据保存在 wordpress 的 wp-options table 中,一切正常,问题是当我尝试回显变量内容时没有任何反应?

我做了什么:

我首先在我的插件 php 文件的顶部添加了一个全局数组变量:

    $options = array();

    options_init(){

        if(current_user_can('manage_options')):

           global  $options;

            if(isset($_POST['form_submitted'])){

              $hidden = esc_html($_POST['form_submitted']);

                if($hidden == 'Y'){

                    $Brand = $_POST['brand_color'];
                    $options['brand_color'] = $Brand;

                    update_option('general_info', $options);
                }   

            }
                $options = get_option('general_info');

         endif
     }

所以现在我已经存储了数据,然后检索数据并将其存储在我的选项变量中。在另一个函数中,我创建了简码功能和内容,以便在使用简码时显示在屏幕上。

我首先调用我的全局变量,然后调用短代码内容的输出。

add_shortcode('my-form', 'budget_form');
function budget_form() {
global  $options;   
  ?>
<div class="monkey-budget-planner-wrapper">
        <div class="monkey-header-wrapper" style="background:<?php echo $options['brand_color'] ?>">
       </div>
</div>

    <?php
}

问题是样式没有输出,没有错误,在检查器中我看到输出是空白的。我不确定我做错了什么?

为什么不呢?你也可以结合你的一些条件。

  options_init(){

        if(current_user_can('manage_options') && isset($_POST['form_submitted'])):

              $hidden = esc_html($_POST['form_submitted']);

                if( $hidden == 'Y'){

                    $brand = $_POST['brand_color'];

                    update_option('brand_color', $brand);
                }   


         endif
     }

比你能用

    add_shortcode('my-form', 'budget_form');

        function budget_form() { 

          $color = get_option('brand_color'); ?>

          <div class="monkey-budget-planner-wrapper">
                 <div class="monkey-header-wrapper" style="background:<?php echo $color ?>"></div>
          </div>

    <?php } ?>

如果您需要多个选项集,而不仅仅是使用 update_option(), 创建更多选项(如果您要设置页面特定值),我建议 update_post_metaget_post_meta()update_option() 通常用于主题级别的数据。