2010-06-29 53 views

回答

16

您可以通过在posts表上使用select查询插入到postmeta表中来实现。

在下面的示例中,我使用wp_作为我的表前缀,您的设置可能会有所不同。

insert into wp_postmeta (post_id, meta_key, meta_value) 
select ID, 'my-key', 'my-value' from wp_posts where post_type = 'post'; 
+0

的作品。谢谢! 有没有什么办法可以检查meta key是否存在,所以我不添加重复项? – Alex 2010-06-30 00:04:50

+6

完美工作。我只是想添加一个小小的更新,因为这个语句为每个单独的项目添加了postmeta,包括附件,页面等。我在末尾添加了一个WHERE语句,以便它只添加帖子的关键字:'insert into wp_postmeta(post_id, meta_key,meta_value) 从wp_posts中选择ID,'my​​-key','my-value'WHERE post_type ='post'' – waffl 2011-05-26 16:20:30

+0

太棒了!保存了我的一天,它完美的工作 – 2015-03-26 21:19:36

1

是的,这是可能的,但它是不可取的。您的数据在下次升级时可能会丢失。如果您不打算升级,那么您将在您的网站中留下空洞的安全漏洞。推荐的方法是使用postmeta表。这就是它的存在。

编辑现在

我更好地理解这个问题,忽略以上的部分。查看评论以获取更多详情

+0

我没评分你的答案。我没有在这里的帐户,所以我甚至不能这样做:) – Alex 2010-06-29 15:31:50

+0

我认为亚历克斯意味着他如何创建Wordpress自定义字段(这将使用'postmeta'表)与SQL,而不是他怎么可以添加新帖子的帖子表(这似乎是你如何解释它约翰)。然而,反对票看起来并不讨人喜欢。至于你的问题亚历克斯,我不认为你可以使用单个SQL语句来做到这一点,你需要检索所有的帖子ID,然后为每个包含自定义字段数据的帖子在'postmeta'表添加一行。 – 2010-06-29 16:07:17

+0

啊。理查德,我认为你是对的。 FWIW,亚历克斯,我从来没有想过你投了票。一般来说,提问的人有兴趣找到答案,并在投票前进行沟通。我的评论中的'你'应该都是非人称代词。 – 2010-06-29 16:53:08

相关问题