我正在开发一个Wordpress插件,它有一个我用来将内容打印到页面/帖子上的短代码。
在我的插件文件中,我已经启动了所有的菜单页面和设置,我在插件管理页面中有2个设置,其中一个是品牌颜色,因此用户可以更改快捷代码吐出的表单的品牌颜色。
数据被保存在wordpress的wp-options表中,一切正常,问题是当我试图回显变量内容时什么也没有发生?
我所做的:
我首先在我的插件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
}
所以现在我已经存储了数据,然后检索数据并将其存储在我的options变量中。在另一个函数中,我创建了短码函数和内容,以便在使用短码时显示在屏幕上。
我首先调用我的全局变量,然后调用短码内容的输出。
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
}
这个问题是样式没有输出,没有错误,在检查器中我看到输出是空白的。我不确定我做错了什么?
发布于 2018-06-02 05:12:31
为什么不行?你也可以结合你的一些条件。
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_meta
和get_post_meta()
。update_option()
通常用于主题级别的数据。
https://stackoverflow.com/questions/50650902
复制相似问题