【问题标题】:Saving multiple key/value pairs in WordPress在 WordPress 中保存多个键/值对
【发布时间】:2012-11-21 22:06:32
【问题描述】:

在开发用于获取一定数量的 RSS 提要的 WordPress 插件时,我遇到了一些设计问题。

供稿的 URL 应该能够由用户配置,这对于固定数量的供稿非常有效。用户可以在相应的设置页面上输入这些提要的 URL,这显然使用了 WordPress 的设置 API。

然而,我的目标是让用户能够输入未知数量的提要,以及用于显示和识别它们的标签和 ID。问题在于表示这些数据的方式。我想要的结果是有一个返回(类似)这样的函数:

$feed_categories = array(
    array(
        'id' => 'tools',
        'label' => 'Tools',
    'url' 'example.org/toolsfeed/feed.xml',
),
array(
    'id' => 'questions',
        'label' => 'Questions',
        'url' => 'www.example.com/feeds/questions.xml',
),
    // Etc
);

现在,我知道我可以使用我目前使用的 WordPress 设置 API 来存储这种数组,但我不确定...

  1. 如果这不是设置 API 的用途,并且
  2. 我将如何制作一个允许“无限”添加三个键值对部分的选项页面,以及如何解析它

编辑:我开始质疑我目前的方法的主要原因是,设置(或选项)API 有一种简单的方法可以为固定数量的项目生成表单,但不是更多。其次,更重要的是,我还没有找到创建自定义 options.php 页面的方法,这是访问传入的 POST 请求所必需的,之后我需要继续验证、格式化和保存发送的配置数据。所以基本上,当我使用设置 API 时,创建表单和处理输入的实际方面对我来说似乎非常有限。扩展options.php 功能的能力会很棒。 (也许我忽略了一个可以做我想做的事情的钩子?)

我查看了设置的验证回调,但这将涉及注册一个您并不想保存的设置,只是为了访问相应的$_POST 键。

另一种选择是这种情况只是制作一个表来存储这些信息。然而,由于这可能是大多数用户会设置并忘记很长时间的东西,我担心它可能会有点矫枉过正。

你们中是否有人知道在设置 API 中实现此功能而无需太多黑客攻击的好方法,或者这真的只是需要自定义表格吗?

我很想听听您对此有何看法,以及您为什么这么认为。

【问题讨论】:

    标签: php wordpress settings


    【解决方案1】:

    执行此操作的最简单方法就像您说的那样,只需将其存储在数据库中即可。这使事情变得简单而美好。这不是很多数据,但它不一定是“矫枉过正”,你只是在使用你可用的东西。

    如果您真的不想使用数据库,您可以做的一个小“技巧”​​是使用选项 API 存储信息。通常你会像这样存储一个键值:

    update_option('some_option','XYZ'); 
    

    但是,如果您愿意,您可以将整个数组存储为一个值。使用您的示例:

    update_option('feed_categories',$feed_categories);
    

    这样做的唯一缺点是,由于您要存储整个数组,因此当您更新 feed_categories 时,您需要

    1. 读取整个数组
    2. 更改阵列中您想要更改的任何设置
    3. 再次保存整个数组。

    所以你不能做一些事情,比如只获取数组的第一部分,等等。你必须每次都使用整个数组。

    【讨论】:

    • 用数组做所有这些应该不是什么大问题,因为我不认为它会保存超过 8 个值。主要问题在于实际捕获这些数据。我编辑了我的帖子以解释更多关于这一点。
    猜你喜欢
    • 2022-01-17
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 2018-03-04
    • 2016-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多