pix*_*cer 2 arrays wordpress options multidimensional-array
我正在为 wordrpess 开发一个主题,我想为主题设置添加一个选项管理页面。无法让我的大脑在这个过程中工作。继承人我的代码:
$option_settings = (array(
array('Section1', array(
array( 'ID'=>'id_name1',
'Label'=>'Title1',
'Value'=>'The title1 bar',
'Desc'=>'Description Goes Here1',
'Type'=>'input_text',
'Button'=>'upload'
),
array('Section2', array(
array( 'ID'=>'id_name2',
'Label'=>'Title2',
'Value'=>'The title2 bar',
'Desc'=>'Description Goes Here2',
'Type'=>'input_text',
'Button'=>'upload'
),
))
));
if (!get_option('my_option_settings')) {
add_option('my_option_settings',$option_settings);
}
$options = get_option('my_option_settings');
if ($_REQUEST['save_settings']) {
//this is where my brain snaps huhu
}
echo '<form method="post" action="index.php" id="form_settings">';
echo '<p class="submit message"><input type="submit" value="Save Changes" name="save_settings" /></p>';
foreach ($options as $section) {
echo '<h3>'.$section[0].'</h3>';
foreach ($section[1] as $option => $value) {
switch($value['Type']) {
case "input_text":
echo '<p><strong>'.$value[Label].'</strong> <input type="text" name="'.$value['ID'].'" id="'.$value['ID'].'" value="'.$value['Value'].'" /></p>';
break;
}
}
echo '</form>';
Run Code Online (Sandbox Code Playgroud)
我在这里主要关心的是如何在数组中编辑数组以及如何传递请求。非常感谢任何帮助 提前致谢。
更新的问题:
好的,可以说 $option-settings 是 wordpress 选项数据库的内容。原因是我想在 wordpress 数据库中只有 1 个选项,并且只需将它们存储到数组中以进行更多的组织数据。
首先是获取值并将其分配给一个变量:
$fetchOption = get_option('my_option_settings');
Run Code Online (Sandbox Code Playgroud)
现在我将编辑或更新 $fetchOption 变量中的数组。
foreach ($options as $section) {
foreach ($section[1] as $option => $value) {
$value['Value'] = [$_POST[$value['ID']]];
}
}
Run Code Online (Sandbox Code Playgroud)
最后是如何将更改后的值放回 $fetchOption 变量并使用 update_options('my_option_settings', $fetchOption) 更新回数据库。
这是否合适?最好的做法是什么?我可以将它们分配给 1 个选项,但我猜它有点混乱。再次感谢!
嗯。我真的希望你已经找到了答案,但是..因为有人可能需要这个信息,我想在这里添加它。
首先是资源链接。
然后,我用作“来源”的答案:
就 WordPress 而言 - 您的多维数组是一种选择。
要仅更新多维数组的一部分,需要检索整个数组,相应地更改它,然后更新整个数组。
假设你的多维数组如下:
Run Code Online (Sandbox Code Playgroud)my_options = array( 'option_a'=>'value_a', 'option_b'=>'value_b', 'inner_array'=>array( 'foo' => 'bar', 'hello' => 'world', ), 'option_c'=>'value_c' )假设您想将 'hello' 选项的值从 'world' 更新为 'moon'
Run Code Online (Sandbox Code Playgroud)//Get entire array $my_options = get_option('my_options'); //Alter the options array appropriately $my_options['inner_array']['hello'] = 'moon'; //Update entire array update_option('my_options', $my_options);
希望这有助于 Stackoverflow 访问者在涉及 Wordpress 选项时管理多维数组:)
| 归档时间: |
|
| 查看次数: |
8809 次 |
| 最近记录: |