0

我为我的一位客户制作了一个 wordpress 视频部分。在后端,它是一种自定义帖子类型,用户可以在其中放置视频的 ID (http://www.youtube.com/watch?v= kFHshctPO9E )。

使用此ID,我嵌入视频并从 youtube api 获取每个视频的持续时间评分

现在每次加载视频(在概览模板中加载所有视频)时,它都必须联系 YouTube 以获取所有视频的持续时间(然后我将其解析为小时和分钟而不是秒)和评级。

我想以某种方式将这些值缓存或保存到自定义字段或其他地方。

有人知道吗?

预先感谢!

瑞克

4

1 回答 1

1

您可以post_meta在第一次保存帖子时使用保存此信息,然后从数据库中加载信息,而不是再次使用 youtube api。

我用伪代码给你举了一个例子:

add_action('save_post', 'my_function_to_save_posts_action');
function my_function_to_save_posts_action($post_id) {
  $the_post = get_post($post_id);
  if ($the_post->type == 'my_custom_post_type') {
    $youtube_data = my_function_to_retrieve_youtube_data();
    if (my_function_exists_post_meta($post_id)) {
      update_post_meta($post_id, 'my_video_duration', $youtube_data['duration']);
      update_post_meta($post_id, 'my_video_rating', $youtube_data['rating']);
    }
    else {
      add_post_meta($post_id, 'my_video_duration', $youtube_data['duration'], true);
      add_post_meta($post_id, 'my_video_rating', $youtube_data['rating'], true);
    }
  }
}

当然,当您查询自定义帖子类型时,您必须检索 post_meta 信息并正确显示此信息。

于 2012-11-20T16:23:17.690 回答