我正在开发一个Wordpress插件,它采用PitchEngine JSON提要,并将每个'Pitch'添加为Wordpress Post。
我能够检索'Pitch'内容,但是将'Pitch'添加为帖子的波纹管功能会导致无限循环,这会增加无限数量的帖子。我已将其追溯到wp_insert_post函数。没有它,就没有无限循环,有了它,就有......
function pitchengine_create_post($jsonvals, $post_type = 'post') {
//Create Post
$post = array(
'comment_status' => 'closed',
'ping_status' => 'closed',
'post_content' => $jsonvals->Text,
'post_date' => $jsonvals->PublishDate,
'post_excerpt' => $jsonvals->Summary,
'post_status' => 'publish',
'post_title' => $jsonvals->Headline,
'post_type' => $post_type,
);
$post_id = wp_insert_post( $post, $wp_error );
//Add Post Meta
//pitchengine ID [DisplayUrl]
add_post_meta($post_id, 'pitch_ID', $jsonvals->DisplayUrl);
//pitchengine URL (brand Url base) + [DisplayUrl]
add_post_meta($post_id, 'pitch_URL', $jsonvals->Meta->shorturl);
//source name (pitchengine)
add_post_meta($post_id, 'pitch_name', 'Pitch Engine');
//If error, return error
//If success set return post ID
$response = $post_id;
return $response;
}
我可能会出错的任何想法?
答案 0 :(得分:1)
想出这个:
我正在测试此功能,方法是将其添加到save_post
操作中,每次wp_insert_post()
运行时都会调用此操作。这创造了我的无限循环。为了解决这个问题,我从save_post
钩子中删除了该函数,并将该函数挂钩到与wp_insert_post
函数无关的其他操作。
答案 1 :(得分:0)
save_post和publish_post操作在您发布或更新帖子的所有时间都有效。 因此,每次都可以调用函数。 要解决这个问题,您可以使用CURL函数。 当你获取feed时,在php页面上发布这些数据(使用Curl),你可以在其中编写插入帖子的代码。
我希望它能解决你的问题。