3

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

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

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

任何帮助表示赞赏。

更新:

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

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

4

1 回答 1

8

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'];

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

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

    return $instance;
}, 10, 4);

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

参考:

于 2017-01-14T03:52:43.820 回答