按顺序在帖子上运行功能

时间:2014-10-27 17:29:48

标签: php arrays wordpress

我在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 );

0 个答案:

没有答案