我挣扎了一下,我不能在函数之间传递变量。很多例子都显示了我测试的代码,但由于某些原因它不适用于我。
我正在为wordpress构建主题,我需要一个主题的选项面板。
对于选项面板,我有一个名为options_theme()的函数,该函数应该显示选项页面。
但是,由于我想要动态字段,我已经构建了2个函数theme_options(),这是一个字段数组,另一个是theme_fields(),它显示基于theme_options()数组的字段。这不是问题,因为这有效,但我只是解释这些功能是什么。
问题是我想要可以多次重复使用的动态字段,为此我只需要在每个函数上单独切换调用theme_options。
这是我现在的代码:这是admin / index.php页面,其中包含显示带有选项的字段的功能
function options_theme() {
require_once( THEMEPATH . 'admin/fields.php' );
global $settings, $options;
$settings = get_option($option_name);
$options =& _theme_options();
<-- Here goes some html for options page -->
now display fields
theme_fields()
}
上面的函数应该在$ settings中设置选项名称,并在$ options中获取一个主题选项数组,而不是在theme_fields中显示最终显示字段。
问题是我收到错误,没有设置$ options和$ settings。
这就是函数theme_fields()的工作原理
function theme_fields() {
global $settings, $options;
foreach( $options as $field) {
display fields
}
}
为了能够在不同的页面上使用theme_fields(),我需要能够为每页设置$ options和$ settings,因为我需要在theme_fields()之外设置$ options和$ settings,就像在我发布的示例中一样以上。但它不起作用。
如果我这样设置
function theme_fields() {
$settings = get_option($option_name);
$options =& _theme_options();
foreach( $options as $field) {
display fields
}
}
它有效。
如何在theme_fields()之外设置$ settings和$ options的值,这样我就可以在不同的页面上多次使用它。
function options_theme() {
require_once( THEMEPATH . 'admin/fields.php' );
global $settings, $options;
$settings = get_option($option_name);
$options =& _theme_options();
<-- Here goes some html for options page -->
now display fields
theme_fields()
}
function options_widgets() {
require_once( THEMEPATH . 'admin/fields.php' );
global $settings, $options;
$settings = get_option($option_name);
$options =& _theme_widgets();
<-- Here goes some html for options page -->
now display fields
theme_fields()
}