在WordPress中存储文本小部件的内容?

时间:2017-01-14 03:18:52

标签: wordpress

在Wordpress中,当我们在侧边栏中创建文本小部件时,文本的内容是保存在变量中还是保存在数据库中?

如果它是一个变量,它是哪个变量?

如果是数据库,那是哪个表?

感谢任何帮助。

更新

我想要实现的是,我将创建一个插件来检查用户是否在他们的网站上创建了文本小部件,如果是,那么我希望该插件获取它的内容,将其发送到我的服务器,通过我的拼写检查程序运行它,将更新的内容带回来并替换文本小部件的旧内容。

因此,这就是为什么我想知道如何访问网站所有者输入的文本小部件的确切内容。

1 个答案:

答案 0 :(得分:6)

  

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.

代码经过测试且功能齐全。

请注意:我认为您的价值有this

更新 (在阅读完确的要求后)

您可以使用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'];

        //...
        //Now do your stuff and update $content.
        //...

        $instance['title'] = $title;
        $instance['text'] = $content;
    }

    return $instance;
}, 10, 4);

代码进入活动子主题(或主题)的function.php文件。或者也可以在任何插件php文件中。
代码经过测试且功能齐全。

参考: