Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress&;SQL:向所有帖子添加自定义字段_Sql_Wordpress_Field - Fatal编程技术网

Wordpress&;SQL:向所有帖子添加自定义字段

Wordpress&;SQL:向所有帖子添加自定义字段,sql,wordpress,field,Sql,Wordpress,Field,我需要一个可以在PHPmyadmin中运行的SQL查询,该查询向所有现有帖子添加一个自定义字段(带值)。 有人能帮忙吗?这可能吗?是的,这是可能的,但这是不可取的。下次升级时,您的数据可能会丢失。如果你不打算升级,那么你就在你的网站上留下了巨大的安全漏洞。推荐的方法是使用POSTETA表。这就是它存在的目的 编辑 现在我更好地理解了这个问题,忽略上面的部分。有关更多详细信息,请参阅注释。您可以通过使用posts表上的select查询插入POSTETA表来完成此操作 在下面的示例中,我使用wp_u

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

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

编辑


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

您可以通过使用posts表上的select查询插入POSTETA表来完成此操作

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

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

我没有给你的答案打分。我在这里没有帐户,所以我甚至不能这样做:)我想Alex的意思是他如何用SQL创建Wordpress自定义字段(将使用
Posteta
表),而不是如何向posts表添加新列(这似乎是您对它的解释John)。然而,反对票似乎是无情的。至于你的问题Alex,我不认为你可以使用一条SQL语句来实现这一点,你需要检索所有的post ID,然后为每个包含自定义字段数据的post向
postETA
表中添加一行。啊。我想你是对的,理查德。哦,亚历克斯,我从没想过你会否决它。一般来说,提出问题的人都对找到答案感兴趣,并在投票否决之前进行沟通。我评论中的“你”应该都是非个人代词。理查德是对的。似乎没有一种方法可以使用SQL来实现这一点。我建议使用一个插件脚本,可以从管理区域执行,以实现Richard建议的功能。谢谢有什么方法可以检查元密钥是否存在,这样我就不会添加重复项了吗?非常有效。我只想添加一个小小的更新,因为这个语句为每个项目(包括附件、页面等)添加了postETA。我在末尾添加了一个WHERE语句,这样它只会为posts添加键:
insert into wp\u postETA(post\u id,meta\u key,meta\u value)从wp\u posts中选择id,'my key','my value',其中post\u type='post'