我希望在此answer之后从get_option获取数组值以添加更多,但它不适用于我。我找不到我出错的地方。它在我不使用数组时有效。
工作代码(不带数组):
add_action('admin_init', function() {
register_setting('my-test', 'option1');
register_setting('my-test', 'option2');
register_setting('my-test', 'option3');
});
function my_function() {
?>
<div class="wrap">
<h1>Dashboard</h1>
<form action="options.php" method="post">
<?php
settings_fields('my-test');
do_settings_sections('my-test');
?>
<input type="text" name="option1" value="<?php echo esc_attr( get_option('option1') ); ?>"" />
<?php submit_button(); ?>
</form>
</div>
<?php
}
然后我想将数组用于get_option。我按照上面提到的答案,但它给了我错误。请参阅下面的代码。
不工作的代码(带数组):
add_action('admin_init', function() {
register_setting('my-test', 'option1');
register_setting('my-test', 'option2');
register_setting('my-test', 'option3');
});
function my_function() {
$new_option = esc_attr(get_option('option2'));
?>
<div class="wrap">
<h1>Dashboard</h1>
<form action="options.php" method="post">
<?php
settings_fields('my-test');
do_settings_sections('my-test');
?>
<input type="text" name="option1" value="<?php echo esc_attr( get_option('option1') ); ?>"" />
<input type="text" name="option2[first]" value="<?php echo $new_option['first']; ?>" />
<input type="text" name="option2[second]" value="<?php echo $new_option['second']; ?>" />
<?php submit_button(); ?>
</form>
</div>
<?php
}
我错过了什么吗?任何帮助深表感谢。提前谢谢。
答案 0 :(得分:0)
删除以下行中的 esc_attr 功能。此函数将字符串作为输入并返回字符串。由于处理数组会导致错误。
$new_option = get_option('option2');
您应该使用实际输出值的函数。
<input type="text" name="option2[first]" value="<?php echo esc_attr( $new_option['first'] ); ?>" />
希望它有所帮助。 :)