我现在已经尝试解决这个问题几天了。我希望有人可以帮助我!
基本上,我尝试做的是:
我目前的代码是:
add_action( 'transition_post_status', 'create_review', 10, 3 );
function create_review( $new, $old, $post ) {
if ( ( $new == 'publish' ) && ( $old == 'draft' ) && ( $post->post_type == 'ebs_offer' ) ) {
//when new offer is created
//create a review post
$review_post = array(
'post_type' => 'ebs_review',
'post_title' => get_field('ebs_brand_name', $post->ID),
'post_content' => 'Content Goes Here',
'post_status' => 'publish',
'post_author' => 1,
);
// Insert the post into the database
wp_insert_post( $review_post );
} else {
return;
}
if ( ( $new == 'publish' ) && ( $old == 'draft' ) && ( $post->post_type == 'ebs_review' ) ) {
//when new review is created
//update the offer post object relationship
} else {
return;
}
}
这很好用,我只是无法弄清楚如何更新优惠的帖子对象关系。在任何人说我的代码没有表明我自己试图解决这个问题之前,我已经尝试了大量不同的钩子和功能 - 我有!
我已经删除了我的代码,以便有人可以指出我正确的方向。
谢谢你们!
答案 0 :(得分:0)
解决!
对于有相同问题的任何人,您可以使用:
update_field($ field_name,$ post,$ post-you-to-update-id);
更新。
传递整个$ post数组以更新post对象。
希望这有助于某人。
add_action( 'transition_post_status', 'create_review', 10, 3 );
function create_review( $new, $old, $post ) {
if ( ( $new == 'publish' ) && ( $old == 'draft' ) && ( $post->post_type == 'ebs_offer' ) ) {
//when new offer is created
//create a review post
global $offer_post_id;
$offer_post_id = $post->ID;
// Create post object
$review_post = array(
'post_type' => 'ebs_review',
'post_title' => get_field('ebs_brand_name', $post->ID),
'post_content' => 'Content Goes Here',
'post_status' => 'publish',
'post_author' => 1,
);
// Insert the post into the database
wp_insert_post( $review_post );
}
if ( ( $new == 'publish' ) && ( $old == 'new' ) && ( $post->post_type == 'ebs_review' ) ) {
//when new offer is created
//link the review page to the offer
global $offer_post_id;
update_field('ebs_review_link', $post, $offer_post_id);
} else {
return;
}
}