我试图在WordPress自定义字段中添加一些数据,并通过在中添加更多直接记录/数据wp_postmeta
表通过SQL查询。下面有四列。。。
“元id”-每个条目的唯一id“post\\u id”-此元数据的帖子id“meta\\u key”-“key”的名称“meta\\u值”-与键关联的值现在,我使用下面的SQL查询添加更多记录/数据。
$INSERTING_DATA = "INSERT INTO `wp_postmeta` (`meta_id`, `post_id`, `meta_key`, `meta_value`) values (\'XXXXXXXXX\', \'WordPress_Post_ID_No\', \'WordPress_Post_Custom_Field_Name\', \'WordPress_Post_Custom_Field_Value\')";
所以我可以在这里添加所有数据,但我想知道要添加什么
meta_id
柱是那个自动递增的值,所以我必须保留那个值,我应该使用下面的SQL查询吗。。。???
$INSERTING_DATA = "INSERT INTO `wp_postmeta` (`post_id`, `meta_key`, `meta_value`) values (\'WordPress_Post_ID_No\', \'WordPress_Post_Custom_Field_Name\', \'WordPress_Post_Custom_Field_Value\')";
现在告诉我哪一个是正确的,可以使用。第一个或第二个。。。???还请描述一下
meta_id
在这张桌子上?
SO网友:david.binda
您不应该使用直接SQL。考虑创建一个PHP脚本,加载WordPress核心函数并使用它们(请参阅https://stackoverflow.com/questions/9101503/include-wordpress-core-into-own-scripts#answer-9126230 了解如何做到这一点)。
但是如果您确实想创建自定义SQL(如果您提出的问题我强烈建议您不要这样做),您可能应该获得更多关于
postmeta
进行此操作之前,请参阅表。让我为你介绍一下这个话题。
首先,让我们对该表进行一些概述:
mysql> describe wp40.wp_postmeta;
+------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+---------------------+------+-----+---------+----------------+
| meta_id | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
| post_id | bigint(20) unsigned | NO | MUL | 0 | |
| meta_key | varchar(255) | YES | MUL | NULL | |
| meta_value | longtext | YES | | NULL | |
+------------+---------------------+------+-----+---------+----------------+
4 rows in set (0,08 sec)
从中可以看出,meta\\u id是
auto_increment
因此,MySQL将自己弄清楚它应该增加什么价值。传递简单
0
而不是真实的
meta_id
足够了。
post_id
回指元所关联的帖子。默认值为0
但你应该通过一个真正的post_id
因此,您可以在后期编辑屏幕上的自定义字段编辑器中看到元。
meta_key
是元的名称。请注意,使用以下划线开头的名称,例如:_hidden_meta
将从编辑屏幕上的自定义字段编辑器中隐藏元。
meta_value
是一个长文本,可以容纳您需要的任何文本。但只传递字符串!(对于其他对象的数组,可以序列化文本)。
但再次考虑使用add_post_meta 或update_post_meta 功能。