如何在MySQL查询上为已有的自定义字段添加前缀?

时间:2013-05-23 作者:Andre

我有一个问题,在插件更新后,我可以custom fields 在我们的目录网站上可搜索,但仅限于custom fields 获取前缀booking_ 对他们来说。

现在有一些页面(已经有30个),每个页面都有几十个自定义字段。我想创建一个自定义字段,称为testfield 成为booking_testfield...因此,所有自定义字段都应具有前缀,但不应中断站点。

我正在使用的主题框架将在进入页面时创建新的自定义字段,但那些带有前缀的新字段可以通过主题框架进行管理。

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

important: 首先备份数据库!

假设您的表前缀为“wp\\u0”,此查询将更改自定义字段名称:

update wp_postmeta set meta_key = \'booking_testfield\' where meta_key = \'testfield\';
注意:这还假设自定义字段名称对于您的应用程序是唯一的,即它没有被其他帖子类型使用。如果另一个帖子类型可能正在使用该字段名,那么您需要更改更新查询,将wp\\U帖子加入到wp\\U Posteta中,并根据post\\u类型进行筛选。

编辑:如果要duplicate 使用insert 改为查询,如下所示:

insert into wp_postmeta(post_id, meta_key, meta_value)
    select post_id, concat(\'booking_\', meta_key), meta_value
    from wp_postmeta
    where meta_key = \'testfield\';
注意:这将复制数据once. 如果您已经有了一些带有新键的数据,那么您将得到多个值——添加一个子查询以从插入集中删除这些帖子。

结束

相关推荐

WP_QUERY元_按数组键查询

我有一个自定义的post类型,它的meta位于一个数组中。我需要做的是基于该元数组中键的值进行查询。$args = array( \'post_type\' => \'my-cpt\', \'posts_per_page\' => -1, \'orderby\' => \'meta_value\', // Sort by this value \'meta_key\