Correct way to serialize the data of options table?

I am writing a plugin and it require around 15 different options so I am using php serialization. I’m doing it by an array and update option with php serialize functions.

but when I access it from /wp-admin/options.php I’m able to see the raw data but while as core wordpress options are locked mentioned SERIALIZED DATA. I want to implement something like this.

Related posts

Leave a Reply

1 comment

  1. The correct way to store multiple options is as a multidimensional array and save to one option field.

    $myopt = array(
        'variable1' => ...
        'variable2' => ...
        ....
    );
    

    Then simply pass the array to update_option()

    update_option('my_settings_field', $myopt);
    

    If you pass an array WP will auto serialize the data for you.

    Then to read back out:

    $myopt = get_option('my_settings_field');
    

    WP will auto un-serialize the data and put back into an array.

    You mentioned that on options.php you see that the option is shown as SERIALIZED DATA this is because you cannot reliably edit serialized data as a string. If you want to be able to edit your options from the options.php page then you will need to save each option individually. I would not recommend this. What I recommend is that you create your own options page for editing your options. There are a number of tutorials out there that can get you started.

    http://codex.wordpress.org/Creating_Options_Pages

    Is a good starting point. And also check out Settings API