下面是我的代码,它将获取post_id,并从同一类别中随机获取3个帖子,并将它们存储为自定义字段。代码显然是有效的,因为当我点击"New Post"时,我看到自定义字段正在填充,但当我单击"Publish"或"Save"时,下面的代码没有被执行,据我所知,在创建新帖子时会调用Save_Post一次,在实际保存帖子时会再调用一次。
有趣的是,下面的代码在本地服务器WAMP中工作,但在我的生产服务器上不工作,我不知道为什么。它们都使用相同的插件。
function update_postmeta($post_id) {
global $post;
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
return;
}
unset($rand_id);
$cat_id = get_the_category($post_id);
$args = array(
'showposts' => 3,
'orderby' => 'rand',
'cat' => $cat_id[0]->cat_ID,
);
$my_query = new WP_Query($args);
while ($my_query->have_posts()) : $my_query->the_post();
$rand_id = $rand_id.get_the_ID().',';
endwhile; update_post_meta($post_id, 'related_id',$rand_id);
} add_action('save_post', 'update_postmeta');
尝试
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
return($post_id);
}