我为我的一位客户制作了一个wordpress视频部分。在后端,它是一种自定义帖子类型,用户可以在其中放置视频的ID(http://www.youtube.com/watch?v= kFHshctPO9E )。
使用此 ID ,我会嵌入视频,并从youtube api获取每个视频的持续时间和评分。
现在每次加载视频时(在概览模板中加载了所有视频),它必须联系YouTube以获取持续时间(然后我将其解析为小时和分钟而不是秒)和所有视频的评分。
我想以某种方式将这些值缓存或保存到自定义字段或某种程度上。
有人有任何想法吗?
提前感谢!
瑞克
答案 0 :(得分: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信息并正确显示此信息。