【问题标题】:How to initialize $id from another function?如何从另一个函数初始化 $id?
【发布时间】:2014-01-31 20:40:53
【问题描述】:

我想用 $id 来回显在其他函数中输入的 id。这是一个使用 id 的示例函数:

                function nl_register_ga_code() {
                    // Validation callback
                    register_setting( 'nl_theme_options', 'nl_theme_options', 'nl_validate_settings' );
                    // Add setting to section
                    add_settings_section( 'nl_footer_section', 'Footer', 'nl_display_footer_section', 'nl_theme_options.php' );
                    // Create textarea field
                    $field_args = array(
                        'type'      => 'textarea',
                        'id'        => 'nl_ga_code',
                        'name'      => 'nl_ga_code',
                        'desc'      => 'Paste Google Analytics code.',
                        'std'       => '',
                        'label_for' => 'nl_ga_code'
                    );
                    // Label
                    add_settings_field( 'label_ga_code', 'Google Analytics Code', 'nl_display_setting', 'nl_theme_options.php', 'nl_footer_section', $field_args );
                }
                // Registers the setting
                add_action( 'admin_init', 'nl_register_ga_code' );

我将使用该变量的函数是这个:

        function nl_display_setting ( $args ) {
            extract( $args );
            $option_name = 'nl_theme_options';
            $options = get_option( $option_name );
            switch ( $type ) {  
                case 'text':
                        $options[$id] = stripslashes( $options[$id] );
                        $options[$id] = esc_attr( $options[$id] );
                    echo "<input class='regular-text$class' type='text' id='$id' name='" . $option_name . "[$id]' value='$options[$id]'>";
                    echo ( $desc != '' ) ? "<br><span class='description'>$desc</span>" : "";
                break;

我需要初始化 $id 但不知道怎么做。

【问题讨论】:

  • 不幸的是,这与您之前的问题有相同的问题。 $id 是什么?换句话说,你为什么要使用$id?你想用它做什么?
  • 在这个例子中,$id 是 nl_ga_code。它用于提供输入中字段的 id。

标签: php wordpress wordpress-theming


【解决方案1】:

从这个问题和您之前的问题来看,您似乎正在将$field_argsnl_register_ga_code() 传递到nl_display_setting(),就像这样nl_display_setting($field_args)。 (如果不是,那么您应该 -- 根据您的 cmets,这就是您想要做的。)

所以,在nl_display_setting() 中,不要引用$id$type$desc;分别参考$args['id']$args['type']$args['desc']

您不能像引用独立变量一样引用数组键。所以,如果你有这个:

$foo = array('bar' => 1234);

您不能使用$bar 获取1234,但您可以使用$foo['bar'] 获取它。

【讨论】:

  • 正是我想要的!再次感谢您!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-04
  • 2012-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多