如何在以编程方式创建的帖子中添加自定义字段?

时间:2017-10-05 作者:118218

如何在以编程方式创建帖子时向帖子中添加自定义字段?

我试图以编程方式创建一个post,并将一个值存储在直接从PhpMyAdmin创建的列中。

enter image description here

以下是我创建帖子的方式:

$post_title = $post->title->rendered;
$post_content = $post->content->rendered;

$post_check = get_page_by_title($post_title);
$post = array(
    \'post_type\' => \'post\',
    \'post_title\' => $post_title,
    \'post_content\' => $post_content,
    \'post_status\' => \'publish\',
    \'post_author\' => 1,
    \'post_slug\' => $post_title,
    \'post_imported_id\' => 3

);
$post_id = wp_insert_post($post);
if ($post_id) {
    add_post_meta( $post_id, \'post_imported_id\', 3 );
}
帖子已创建,所有默认字段也已妥善保存。

问题是没有考虑我的“post\\u imported\\u id”。

2 个回复
SO网友:cybmeta

通过更改数据库中的post表,您已经创建了一个自定义字段。WordPress API中的自定义字段被视为元字段;这些字段存储在wp_postmeta 表,这是函数使用的表,如add_post_meta() 以及与post自定义/元字段相关的其他函数和方法。

您可以在中检查如何使用元/自定义字段MetaData section of plugin developer handbook.

PD:更改核心数据库表被认为是一种非常糟糕的做法。

SO网友:Vasilis Karantousis

当您使用add_post_meta() 方法中,自定义的post元数据将自动存储在wp_postmeta 有四列的表:ID、post\\u ID、meta\\u key和meta\\u value。因此,在我看来,您没有理由手动创建一个额外的列并在其中存储自定义值。

稍后,如果您想获得帖子的自定义元值,只需使用get_post_meta() 方法

我希望这有帮助。

结束

相关推荐