我想在小部件选项中保存一些参数,然后将这些参数传递到另一个页面。小部件是一种调用webservice的表单。
我想传递的选项是webservice的身份验证,该验证当前硬编码到结果页中(作为模板完成)。因此,他们应该对网站用户隐藏。
小部件/插件的代码:
function widget($args, $instance){
extract($args);
$title = apply_filters(\'widget_title\', empty($instance[\'title\']) ? \'Choose a service\' : $instance[\'title\']);
$lineOne = empty($instance[\'username\']) ? \'\' : $instance[\'username\'];
$lineTwo = empty($instance[\'password\']) ? \'\' : $instance[\'password\'];
# Before the widget
echo $before_widget; // etc...
结果页。。。
$url = "http://www.nhs.uk/NHSCWS/Services/ServicesSearch.aspx?user=".[USERNAME]."&pwd=".[PASSWORD]."&q=".$_POST[\'PostCode\']."&type=".$_POST[\'ServiceType\']."";
仍在学习WP是如何连接在一起的,因此对于n00b问题感到抱歉。
SO网友:Stephen Harris
@乔纳森·伯德的答案可能是“最好的”——当然你应该使用get_option
如果可能的话,因为不能保证选项名称在WordPress版本之间保持不变。
类似地,@JonathonByrd也依赖于使用一个全局变量,该变量可能会被删除/重命名(尽管可能不太可能)。
不幸的是,没有我们可以可靠使用的公共包装器。最接近的是get_settings
控件类的方法。假设您的widget类是My_Widget_Class
, 然后:
$dummy = new My_Widget_Class();
$settings = $dummy->get_settings();
$settings
然后是窗体的数组
array(instance number => settings)
. 通常,您的小部件将具有以下任何ID
my-widget-class-3
- 这里的“实例号”是3,依此类推
$settings[3]
提供小部件的设置(作为数组)
my-widget-class-3
. 我觉得这是一种更可靠、更经得起未来考验的方法。
SO网友:Tom Wright
这根本不是一个愚蠢的问题。
您需要深入到MySQL(使用PhpMyAdmin或类似的工具)并首先获得选项的名称。以下SQL将列出小部件选项:
SELECT *
FROM `wp_options`
WHERE `option_name`
REGEXP \'^widget_\'
LIMIT 0 , 30
然后在模板(或带有某种php exec插件的帖子/页面)中,您可以
get_option()
像这样:
<?php echo get_option(\'your_widget_option_name\'); ?>
瞧!