wordpress - 从YouTube API将数据保存到自定义字段

标签 wordpress api youtube custom-post-type custom-fields

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

使用这个 ID ,我嵌入了视频,并从youtube api中获得了每个视频的持续时间评级

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

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

有人知道吗?

预先感谢!

里克

最佳答案

您可以在首次保存帖子时使用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信息并正确显示此信息。

关于wordpress - 从YouTube API将数据保存到自定义字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13476515/

相关文章:

wordpress - 将子域和路径重定向到具有相同路径的主域

html - 如何使用wordpress在标题中添加自定义div?

node.js - 从服务器端调用 API 需要服务名称作为 API 主机,但在客户端上无法访问

android - 尝试访问 API 时无法验证颁发者

javascript - 无法在 Samsung Galaxy Tab 2 7.0 的默认浏览器上通过 youtube API 播放 youtube 视频

php - 循环出 WordPress 菜单项和子菜单项

wordpress - Git 从本地存储库推送到服务器上的远程存储库以进行 WordPress 部署

spring - Rest API 的集成测试

android - 如何知道youtube正在通过我的android应用程序播放?

jquery - Youtube或Vimeo开始加载后,Safari隐藏层