Text Widget的内容以序列化形式存储在wp_options
表中的option_name > widget_text
下。
您可以使用以下MySQL查询语句来获得该内容:
SELECT * FROM `wp_options` WHERE `option_name` = 'widget_text'
更新
如果你只想获取文本小部件的内容,那么你需要创建一个自定义函数来返回内容,前提是你知道标题。
以下是代码:
function abc_getWidgetContentbyTitle($widget_title)
{
$contect = '';
$widgets = get_option('widget_text');
if (!empty($widgets)):
foreach ($widgets as $widget)
{
if ((!empty($widget['title'])) && $widget['title'] == $widget_title):
$contect = $widget['text'];
endif;
}
endif;
return $contect;
}
代码放在您的活动子主题(或主题)的function.php文件中。也可以放在任何插件php文件中。
用法:
echo abc_getWidgetContentbyTitle('some txt widget 1'); //replace it with your title.
代码经过测试,完全可用。
请注意:我假设您已经拥有类似于这样的值。
更新 (阅读了您的确切要求后)
您可以使用widget_update_callback
钩子来获取用户输入的内容,然后进行拼写检查并用更新后的内容替换它。
下面是一个例子:
add_filter('widget_update_callback', function( $instance, $new, $old, $obj )
{
if ('text' === $obj->id_base && !empty($instance['text']))
{
$title = $instance['title'];
$content = $instance['text'];
$instance['title'] = $title;
$instance['text'] = $content;
}
return $instance;
}, 10, 4);
代码放在您活动的子主题(或主题)的function.php文件中。也可以放在任何插件php文件中。
该代码已经过测试并且完全可用。
参考: