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

Posted

技术标签:

【中文标题】在 WordPress 中,文本小部件的内容存储在哪里?【英文标题】:In WordPress where the content of text widget are stored? 【发布时间】:2017-05-29 12:36:19 【问题描述】:

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

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

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

感谢任何帮助。

更新:

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

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

【问题讨论】:

【参考方案1】:

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 文件中。代码已经过测试并且功能齐全。

参考:

get_option() Hook called before text widget save

【讨论】:

除了在文本小部件中输入的内容之外,该列中还有很多文本。有没有办法摆脱它或另一个表格,其中内容被保存而列中没有任何其他内容? 检查link,它将数据存储为关联数组,因此您可以在text 键中找到内容。您只有单个文本小部件还是多文本小部件? 我有多个文本小部件。您展示的数组.. 是 WP 制作了这个数组吗?如果是,我如何访问它? 恐怕我不知道文本小部件的标题,因为它们将是用户输入。他们有时甚至可能没有头衔。有什么解决办法吗? 您究竟想做什么,请在您的问题中解释一下,这将有助于确定最佳解决方案。

以上是关于在 WordPress 中,文本小部件的内容存储在哪里?的主要内容,如果未能解决你的问题,请参考以下文章

Wordpress小部件正在管理区域中消失

从WordPress小部件获取数据以修改帖子内容

在 WordPress 中使用 MySQL 查询检索小部件数据

带类的Wordpress文本小部件

Wordpress文本小部件嵌入视频和图像

Wordpress:为特定模板添加小部件侧边栏