【问题标题】:Save data to custom field from youtube api从 youtube api 将数据保存到自定义字段
【发布时间】:2012-11-08 17:10:34
【问题描述】:
我为我的一位客户制作了一个 wordpress 视频部分。在后端,它是一种自定义帖子类型,用户可以在其中放置视频的 ID (http://www.youtube.com/watch?v=kFHshctPO9E)。
使用这个 ID 我嵌入了视频并从 youtube api 获取每个视频的 持续时间 和 评分。
现在每次加载视频(在概览模板中加载所有视频)时,它都必须联系 YouTube 以获取所有视频的持续时间(然后我将其解析为小时和分钟而不是秒)和评分.
我想以某种方式将这些值缓存或保存到自定义字段或其他地方。
有人知道吗?
提前致谢!
瑞克
【问题讨论】:
标签:
wordpress
api
youtube
custom-post-type
custom-fields
【解决方案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 信息并正确显示此信息。