使用WordPress设置API将数据数组保存到数据库

时间:2018-05-13 作者:jun

那里希望大家周末愉快。我目前正在开发一个wp插件,在如何使用其设置API保存数据数组方面遇到了问题。我知道我能做到

<select name = my_plugin_options[mode]>
但我该怎么办my_plugin_options[mode] = array(\'high\',\'low\')?我能像下面这样做吗?我试过了,但似乎不起作用。如果有人能给我建议,我将不胜感激。干杯,Jun

<select name = my_plugin_options[mode][high]>

1 个回复
SO网友:Gilbert Rodríguez

如果您添加代码以或多或少地看到您想要做的事情,那将是一件好事。

您不能这样传递它,因为在使用设置API时,必须添加单个值的字段,并使用函数add\\u Settings\\u field()注册。

我不太清楚您想做什么,但如果您需要以以下方式使用name属性中的值创建二维或多维数组,并使用其选项进行保存:

// You add the corresponding labels, if I\'m not wrong, you should have it.
<select name="my_plugin_options[mode][low]">
    <option value="low">Low</option>
    // or true
    <option value="true">Low</option>
</select>

<select name="my_plugin_options[mode][high]">
    <option value="high">High</option>
    // or true
    <option value="true">High</option>
</select>  
您可以通过以下方式获得该值:

<?php

    $my_plugin_options = get_option( \'my_plugin_options\' );
    var_dump( $my_plugin_options[ \'mode\' ] );
    // array( \'high\' => \'high\' ) or array( \'high\' => \'true\' )
    // or
    // array( \'low\' => \'low\' ) or array( \'low\' => \'true\' )

    echo $my_plugin_options[ \'mode\' ][ \'high\' ]; // \'high\' or \'true\'
    echo $my_plugin_options[ \'mode\' ][ \'low\' ]; // \'low\' or \'true\'

    // Example:

    if( $my_plugin_options[ \'mode\' ][ \'high\' ] == \'high\' ) { // Actions }
    if( $my_plugin_options[ \'mode\' ][ \'high\' ] == \'true\' ) { // Actions }
    // or
    if( $my_plugin_options[ \'mode\' ][ \'low\' ] == \'low\' )  { // Actions }
    if( $my_plugin_options[ \'mode\' ][ \'low\' ] == \'true\' ) { // Actions }

?>  
如果您可以添加测试代码,我会更好地帮助您。

<select name="my_plugin_options[mode]">
    <option value="low">Low</option>
    <option value="high">High</option>
</select>

<?php

    $my_plugin_options = get_option( \'my_plugin_options\' );
    var_dump( $my_plugin_options[ \'mode\' ] ); // \'high\' or \'low\'

    echo $my_plugin_options[ \'mode\' ]; // \'low\' or \'high\'

    // Example:

    if( $my_plugin_options[ \'mode\' ] == \'high\' ) { // Actions }
    if( $my_plugin_options[ \'mode\' ] == \'low\' )  { // Actions }
我建议将Options API与函数add\\u option()或update\\u option()一起使用。

示例:

<?php  

// You receive the data and save it
update_option( \'my_plugin_options\', $_POST[ \'mode\' ] );

$my_plugin_options = get_option( \'my_plugin_options\' );

echo $my_plugin_options[ \'mode\' ]; // \'low\' or \'high\'
如果您可以添加测试代码,我会更好地帮助您。

结束

相关推荐