【问题标题】:Wordpress & SQL: Adding a custom field to all postsWordpress 和 SQL:向所有帖子添加自定义字段
【发布时间】:2011-03-09 14:03:38
【问题描述】:

我需要一个可以在 PHPmyadmin 中运行的 SQL 查询,它为所有现有帖子添加一个自定义字段(带有一个值)。 任何人都可以帮忙吗?这甚至可能吗?

【问题讨论】:

    标签: sql wordpress field


    【解决方案1】:

    您可以通过在帖子表上使用选择查询插入到 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';
    

    【讨论】:

    • 有效。谢谢!有什么方法可以检查元键是否存在所以我不添加重复项?
    • 完美运行。我只是想添加一个微小的更新,因为该语句为每个项目添加了 postmeta,包括附件、页面等。我在末尾添加了一个 WHERE 语句,以便它只会添加帖子的键:insert into wp_postmeta (post_id, meta_key, meta_value) select ID, 'my-key', 'my-value' from wp_posts WHERE post_type = 'post'
    【解决方案2】:

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

    编辑

    现在我更好地理解了这个问题,忽略上面的部分。有关详细信息,请参阅 cmets。

    【讨论】:

    • 我没有评价你的回答。我在这里没有帐户,所以我什至不能这样做:)
    • 我认为 Alex 的意思是他如何使用 SQL 创建 Wordpress 自定义字段(将使用 postmeta 表),而不是如何将新列添加到帖子表(这似乎是你已经解释过了约翰)。不过,否决票似乎是无情的。至于您的问题 Alex,我认为您不能使用单个 SQL 语句来执行此操作,您需要检索所有帖子 ID,然后为包含您的自定义字段数据的每个帖子添加一行到 postmeta 表。
    • 啊。我认为你是对的,理查德。 FWIW,亚历克斯,我从没想过你投了反对票。一般来说,提问的人有兴趣找到答案,并会在投票否决之前进行沟通。我评论中的“你”应该都是非人称代词。
    • 理查德是对的。似乎没有办法使用 SQL 来执行此操作。我建议使用可以从管理区域执行的插件脚本来执行 Richard 建议的操作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-12
    • 2014-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多