这是我的情况。我计划发布一个我正在处理的主题,它有一个自定义的帖子类型,名为Code
它有一个定制的分类法叫做Languages
现在,我还使用了一个带有可用语言下拉列表的自定义元框,我需要以某种方式使他们在选择下拉框中选择的值不仅保存为元值(它已经保存了),而且还需要将该值作为该帖子的分类法
因此,如果他们发表文章并在meta\\u框中选择语言“PHP”,那么当他们发表文章时,就会选择“PHP”分类法。我计划隐藏分类法UI并自动填充所有可能的分类法术语
1) 如何使metabox值除了保存meta\\u值之外,还保存为该帖子的分类法?
更新
好的,我找到了一个可能的解决方案,
wp_set_object_terms( 123, \'PHP\', \'tag\' );
将在post ID 123中添加PHP标记分类法。
所以我只需要知道在发布帖子时如何获取帖子ID,这是否可能,因为该帖子还没有在DB中发布在新帖子上?有什么想法吗
最合适的回答,由SO网友:Michal Mau 整理而成
你应该将你的行动与save_post
钩它在创建帖子后立即激发$post_id
和其他$post
数据变量已可用。
像这样的事情应该可以做到:
add_action( \'save_post\', \'jason_code_save_post\', 10, 2 );
function jason_code_save_post( $post_ID, $post ) {
if ( \'code\' != $post->post_type || wp_is_post_revision( $post_ID ) )
return;
wp_set_object_terms( $post_ID, \'PHP\', \'tag\' );
}
请参见
Plugin_API/Action_Reference/save_post.
如果需要更多解释,请告诉我。。。