在documentation 属于wp_insert_post
页面的一半有一个变更日志,上面写着以下内容:
自:WordPress 4.4.0起,现在可以将“meta\\u input”数组传递给$postarr以添加post元数据。
我正在使用Wordpress 4.4.2。我将尝试通过运行以下代码来添加新帖子:
function handle_post($post)
{
wp_insert_post( array(
\'post_title\' => $post[\'title\'],
\'post_type\' => \'werknemers\',
\'meta_input\' => array(
array(
\'key\' => \'name\',
\'value\' => $post[\'name\']
),
array(
\'key\' => \'city\',
\'value\' => $post[\'city\']
)
)
) );
}
帖子被添加到数据库中,但没有元数据。我找到了
this stack post, 但我不知道如何实现
if statement
.
我还对添加分类法(tax\\u输入)的方式感兴趣。
最合适的回答,由SO网友:Milo 整理而成
meta_input
只是一个一维数组key => value
:
\'meta_input\' => array(
\'name\' => $post[\'name\'],
\'city\' => $post[\'city\']
)
tax_input
略有不同,以tax作为键和一个值数组:
\'tax_input\' => array(
\'taxonomy_name\' => array(
\'term\',
\'term2\',
\'term3\'
)
)
请注意,对于
tax_input
要工作,当前在代码运行时登录的用户必须具有管理该分类法的能力,否则它将以静默方式失败。