Сериализация не нужна.Существуют встроенные методы для аккуратного хранения параметров темы в массиве.
Вот полный пример, включающий весь необходимый код:
Во-первых, в файле functions.php вашей темы вынужно зарегистрировать настройки, которые вы будете использовать, написав небольшую функцию и используя ловушку WordPress, чтобы активировать ее:
<?php
function my_theme_admin_init() {
register_setting('my_options', 'my_theme_options');
}
add_action('admin_init', 'my_theme_admin_init');
?>
Затем, в месте, где вы хотите использовать опции, используйте этот бит HTMLи php.(Обратите внимание, что форма публикуется в файле options.php. Для этого используются встроенные функции WordPress, позволяющие сохранять параметры за вас):
<form method="post" action="options.php">
<?php
// Load the options from the WP db
$options = get_option('my_theme_options');
// WP built-in function to display the appropriate fields for saving options
settings_fields("my_options"); ?>
<table class="form-table">
<tr>
<th scope="row">Facebook URL:</th>
<td>
<input type="text" name="my_theme_options[facebook]" size="40" value="<?php echo stripslashes($options["facebook"]); ?>" />
</td>
</tr>
<tr>
<th scope="row">Twitter URL:</th>
<td>
<input type="text" name="my_theme_options[twitter]" size="40" value="<?php echo stripslashes($options["twitter"]); ?>" />
</td>
</tr>
<tr>
<th scope="row">LinkedIn URL:</th>
<td>
<input type="text" name="my_theme_options[linkedin]" size="40" value="<?php echo stripslashes($options["linkedin"]); ?>" />
</td>
</tr>
</table>
<p class="submit">
<input type="submit" class="button-primary" value="<?php _e('Save Changes') ?>" />
</p>
</form>