我在save_post
操作中触发了以下(资源密集型)功能。当我保存或编辑单个帖子时,它可以正常工作。问题是我需要在同时导入多个帖子时使用它。我相信它同时在所有导入(保存)的帖子中运行此功能。
如何使用save_post
动作但是只在每个帖子上依次执行此功能?
function getYouTubeTags( $post_id ) {
// Terminate if post has any tags
if ( has_term('', 'post_tag') ) {
return;
}
$out = null;
$video_id = get_post_meta( get_the_ID(), 'rfvi_video_id', true );
$tag_url = "http://www.youtube.com/watch?v=" . $video_id;
$sites_html = file_get_contents($tag_url, null, null, 700, 7000);
$html = new DOMDocument();
@$html->loadHTML($sites_html);
$meta_og_tag = null;
foreach( $html->getElementsByTagName('meta') as $meta ) {
if( $meta->getAttribute('property')==='og:video:tag' ){
$meta_og_tag = $meta->getAttribute('content');
$out[] = $meta_og_tag;
}
}
if ( !empty($out) ) {
return implode(',', $out);
} else {
return;
}
}
// Add YouTube tags to post
function rct_save_post_terms( $post_id ) {
$terms = getYouTubeTags( $post_id );
wp_set_post_terms( $post_id, $terms, 'post_tag', true );
}
add_action( 'save_post', 'rct_save_post_terms', 110, 1 );