保存时,Wordpress save_post操作不会触发

时间:2014-04-20 19:22:00

标签: php wordpress action

下面是我的代码,它将使用post_id并从同一类别中随机获取3个帖子并将其存储为自定义字段。代码显然有效,因为当我点击" New Post"时,我看到自定义字段正在填充,但是当我点击"发布"或者"保存",下面的代码没有被执行,据我所知,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');

1 个答案:

答案 0 :(得分:1)

尝试

if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
 return($post_id);
}