update a value in wp_options

时间:2021-04-20 作者:mickna

这种接缝是基本的,但我不明白。如果使用get\\u option查询选项,则会得到字符串:

[{\\"title\\":\\"Brand Primary\\",\\"value\\":\\"#2185D0\\",\\"_id\\":\\"627a0637cf178d93e50be224cc07cd6e\\"},{\\"title\\":\\"Brand Secondary\\",\\"value\\":\\"transparent\\",\\"_id\\":\\"017280d9ec94a585c2de0bee8f49d8fb\\"},{\\"title\\":\\"Typo normal\\",\\"value\\":\\"#383838\\",\\"_id\\":\\"ff77119a11466c8d7a0efd612109fe6a\\"},{\\"title\\":\\"Typo on Brand Base\\",\\"value\\":\\"#383838\\",\\"_id\\":\\"8a3c1eebb8067b37fc47fc505f44b8b4\\"},{\\"value\\":\\"rgb(255, 255, 255)\\",\\"title\\":\\"Typo on Brand Active\\",\\"_id\\":\\"66fe7ced-3ef8-4dac-92c7-568d604c2931\\"}]
如何使用php更改值“#2185D0”(品牌主要)和“#383838”(品牌基础),而不使用这些值(正在更改)

1 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

这是转义JSON。格式很好,如下所示:

[
  {
    "title": "Brand Primary",
    "value": "#2185D0",
    "_id": "627a0637cf178d93e50be224cc07cd6e"
  },
  {
    "title": "Brand Secondary",
    "value": "transparent",
    "_id": "017280d9ec94a585c2de0bee8f49d8fb"
  },
  {
    "title": "Typo normal",
    "value": "#383838",
    "_id": "ff77119a11466c8d7a0efd612109fe6a"
  },
  {
    "title": "Typo on Brand Base",
    "value": "#383838",
    "_id": "8a3c1eebb8067b37fc47fc505f44b8b4"
  },
  {
    "value": "rgb(255, 255, 255)",
    "title": "Typo on Brand Active",
    "_id": "66fe7ced-3ef8-4dac-92c7-568d604c2931"
  }
]
因此,您有一个包含标题和值的对象数组。

要更新其中的值,您需要:

获取值类似这样:

$color_items = get_option( \'cornerstone_color_items\' );
$color_items = stripslashes( $color_items );
$color_items = json_decode( $color_items );

foreach ( $color_items as $color_item ) {
    if ( \'Brand Primary\' === $color_item->title ) {
        $color_item->value = \'NEW VALUE HERE\';
        break;
    }
}

$color_items = wp_json_encode( $color_items );
$color_items = addslashes( $color_items );

update_option( \'cornerstone_color_items\', $color_items );

相关推荐

在多个环境中同步插件设置(wp_options表)

你们如何处理数据库更改,尤其是设置(wp\\u选项)?我在寻找类似的东西,有一个JSON文件(或类似于Laravel的迁移文件)和设置,我可以在部署后运行。例如,安装WooCommerce后,我有一个列表,其中包含我要立即使用和导入的默认设置(预设)。但一旦我添加了一个新的功能或插件,我就可以跨多个环境迁移这些设置。如果JSON文件(或设置文件)是基于环境的,那就太酷了。所以我可以在本地使用测试支付方式设置,在生产中使用实时设置。只需在我的部署脚本中运行wp migrate options之类的命令,即可