Я хотел бы использовать $ 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' );
Функция I будет использовать переменную:
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, но не знаю, как это сделать.
Из этого вопроса и вашего предыдущего вопроса, похоже, вы передаете $field_args
из nl_register_ga_code()
в nl_display_setting()
, как это nl_display_setting($field_args)
. (Если нет, тогда вы должны быть – на основе ваших комментариев, вот что вы пытаетесь сделать.)
Итак, в nl_display_setting()
не ссылайтесь на $id
, $type
или $desc
; обратитесь к $args['id']
, $args['type']
и $args['desc']
, соответственно.
Вы не можете ссылаться на ключ массива, как на отдельную переменную. Итак, если у вас есть это:
$foo = array('bar' => 1234);
Вы не можете использовать $bar
чтобы получить 1234
, но вы можете использовать $foo['bar']
чтобы получить его.