在Wordpress中,当我们在侧边栏中创建文本小部件时,文本的内容是保存在变量还是数据库中?
如果它是一个变量,它是哪个变量?
如果是数据库,那是哪个表?
任何帮助表示赞赏.
更新:
我想要实现的是,我将创建一个插件来检查用户是否在他们的网站上创建了文本小部件,如果是,那么我希望插件获取它的内容,将其发送到我的服务器,运行它我的拼写检查器,返回更新的内容并替换文本小部件的旧内容.
因此,这就是为什么我想知道如何访问网站所有者输入的文本小部件的确切内容.
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
hook来获取用户输入的内容,然后进行拼写检查并将其替换为更新内容.
这是一个例子:
add_filter('widget_update_callback', function( $instance, $new, $old, $obj ) { if ('text' === $obj->id_base && !empty($instance['text'])) { $title = $instance['title']; $content = $instance['text']; //... //Now do your stuff and update $content. //... $instance['title'] = $title; $instance['text'] = $content; } return $instance; }, 10, 4);
代码位于活动子主题(或主题)的function.php文件中.或者也可以在任何插件php文件中.
代码经过测试并且功能齐全.
参考:
get_option()
在文本小部件保存之前调用Hook