首先,没有小部件的数据这样的东西。这是因为一个小部件可能包含在站点的多个位置。因此,数据不属于小部件,而是属于该小部件的实例。因此,每个小部件都有一个ID。如果您想知道小部件实例的ID是什么,可以使用此代码在后端显示它。
add_action(\'in_widget_form\', \'wpse240327_get_widget_id\');
function wpse240327_get_widget_id($widget_instance) {
if ($widget_instance->number=="__i__"){
echo \'<p class="widget-id-message">\' . __(\'Save the widget to get its ID\',\'textdomain\') . \'</p>\';
}
else {
echo \'<p class="widget-id-message">\' . __(\'The widget ID is:\',\'textdomain\') . \' \' . $widget_instance->id . \'</p>\';
}
}
请注意,如果您从侧边栏中删除小部件,然后再将其放回原处,则ID可能已更改。在任何情况下,要标识特定的小部件实例,您都需要此ID。ID有两个组件:名称和数字,您都需要:
my_widget_name_777
让我们把它分开:
$widget_name = \'my_widget_name\';
$widget_instance = \'777\';
现在,您需要访问存储所有数据的阵列。每个小部件都有自己的选项,其中包含该特定小部件的所有实例的数组。您可以这样访问它:
$widget_instances = get_option(\'widget_\' . $widget_name);
这将为您提供一个数组,其中包含键由数字组成的实例,因此您可以在以下位置获取数据:
$data = $widget_instances[$widget_instance];