【问题标题】:Wordpress save_post action not firing when save保存时不会触发 Wordpress save_post 操作
【发布时间】:2014-04-20 19:21:59
【问题描述】:

下面是我的代码,它将获取 post_id 并从同一类别中随机获取 3 个帖子并将它们存储为自定义字段。该代码显然可以正常工作,因为当我单击“新帖子”时,我看到正在填充自定义字段,但是当我单击“发布”或“保存”时,根据我的理解,下面的代码没有被执行,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');

【问题讨论】:

    标签: php wordpress action


    【解决方案1】:

    试试

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

    【讨论】:

    • 谢谢,这不是解决方案。无论如何,我编写了一个小程序来为我完成上述工作。再次感谢您。