In this article, I will tell you how WordPress widgets stored in {prefix}_options table as key/value pair when you set widget in a sidebar.
sidebars_widgets and widget_{widget_ID} are the options.
See below is the array which is stored in the serializing format in sidebars_widgets option key.
Array
(
[wp_inactive_widgets] => Array
(
[0] => meta-2
)
[sidebar-1] => Array
(
[0] => search-2
[1] => recent-posts-2
[2] => recent-comments-2
[3] => archives-2
[4] => categories-2
[5] => recent-posts-3
)
[sidebar-2] => Array
(
[0] => calendar-3
)
[array_version] => 3
)
wp_inactive_widgets contain all inactive widgets. You can inactivate widgets by drag it to Inactive Widgets area.
sidebar-1 (Primary Sidebar) and sidebar-2 (Footer Sidebar) contain active widgets set by the user.
Note: sidebar slug and name will be different based on your theme.
recent-posts is the widget ID of Recent Posts widget. If you use the same widget multiple times then widget ID postfix by a numeric value. Fox example, In above array, I use Recent Posts widget twice so their IDs are recent-posts-2 and recent-posts-3.
In this way, you will get which sidebar contain which widgets. Now you have a question like where widgets settings will store. So answer is, all widgets settings stored in widget_{widget_ID} option key in {prefix}_options table.
Below is the output for Recent Posts settings stored in widget_recent-posts option key.
Array
(
[2] => Array // recent-posts-2
(
[title] =>
[number] => 5
)
[3] => Array // recent-posts-3
(
[title] => Test title
[number] => 10
[show_date] => 1
)
[_multiwidget] => 1
)

Leave a Reply