我想更新post meta而不刷新页面:
我有这部分代码:
$api = "https://api.themoviedb.org/3/tv/1402?api_key=########";
$json = file_get_contents($api);
$data = json_decode($json, TRUE);
update_post_meta($post->ID, 'status', $data['status']);
我在帖子模板中写了这段代码。访问此页面的帖子将会更新。 我想要一种自动更新post meta的方法,而无需刷新或访问页面页面
答案 0 :(得分:0)
您检查了wp-cron吗? 您可以创建每天或每12小时触发的计划事件......?
在此功能中,您可以在帖子中查询每个帖子的循环以更新帖子元。
可能是这样的:
<?php
if ( ! wp_next_scheduled( 'al_my_scheduled_task' ) ) {
wp_schedule_event( time(), 'hourly', 'al_my_scheduled_task' );
}
add_action( 'al_my_scheduled_task', 'al_my_scheduled_function' );
function al_my_scheduled_function() {
$args = array(
'post_type' => 'posts',
'posts_per_page' => -1,
'limit' => -1
)
$posts = get_posts($args);
if($posts){
foreach($posts as $post){ setup_postdata($post);
$api = "https://api.themoviedb.org/3/tv/1402?api_key=########";
$json = file_get_contents($api);
$data = json_decode($json, TRUE);
update_post_meta( get_the_id() , 'status', $data['status']);
}
wp_reset_postdata();
}
}
?>
此代码未经过测试! Plz自己测试一下。
请查看有关wp-cron和缓存插件问题的this answer。