在函数内部设置变量以传递给另一个函数php

时间:2013-11-23 19:47:48

标签: php wordpress function

我挣扎了一下,我不能在函数之间传递变量。很多例子都显示了我测试的代码,但由于某些原因它不适用于我。

我正在为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()
 }

0 个答案:

没有答案