wp_insert_post add meta_input

时间:2016-02-18 作者:ronnyrr

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输入)的方式感兴趣。

1 个回复
最合适的回答,由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 要工作,当前在代码运行时登录的用户必须具有管理该分类法的能力,否则它将以静默方式失败。

相关推荐

选项API-验证回调$INPUT为空

问题是我的插件的验证回调函数的$输入值为NULL。我的理解是,验证回调将使用$input参数,该参数包含POST字段。但是,当我测试验证回调时,$输入参数为NULL,即使检查了设置。请注意,设置页面只有复选框;没有其他输入字段类型。我的register\\u设置如下:;它绑定到admin\\u init挂钩。register_setting( \'pluginPage\', // option group name \'Settings Name\', // o