我编写了以下函数,该函数在保存帖子时将所有帖子术语从“tribe\\u events\\u cat”分类法复制到“categoria”分类法。有一个bug,为了复制条款,我需要单击“更新”两次(即保存帖子两次)。
我相信这会发生因为当我打电话的时候get_the_terms
, 该帖子尚未保存。
有什么办法吗get_the_terms
从最新更新的帖子中获取术语?
function bam_save_event_cat( $post_id ) {
$taxonomy = \'categoria\';
$tribe_cats = get_the_terms( $post_id, \'tribe_events_cat\');
foreach($tribe_cats as $tribe_cat) {
if( empty($tribe_cat->name) ) continue;
$catname = $tribe_cat->name;
$cats[] = $catname;
}
wp_set_object_terms( $post_id, $cats, $taxonomy );
}
function bam_save_event($post_id) {
if ( defined( \'DOING_AUTOSAVE\' ) && DOING_AUTOSAVE )
return;
if ( !current_user_can( \'edit_post\', $post_id ) )
return;
if(get_post_type( $post_id ) == \'tribe_events\' ) {
remove_action( \'save_post\', \'bam_save_event\' );
wp_update_post( array( \'ID\' => $post_id ) );
add_action( \'save_post\', \'bam_save_event\' );
bam_save_event_cat( $post_id );
}
}
add_action( \'save_post\', \'bam_save_event\' );