在其中更新评论元的操作挂钩

时间:2013-06-30 作者:whiteletters in blankpapers

与元更新后的挂钩类似,我在更新注释元值时使用以下代码进行挂钩。

我的评论元键是“考虑”,可以有2个值:0和1。

我的目标是用consider=1, 当计数达到10时,执行一些操作。

            add_action( \'update_comment_meta\', \'ten_considered_comments_badge\');

            function ten_considered_comments_badge($meta_id, $comment_id, $key, $value)
                {
                    if ( \'consider\' != $key or 1!= $value)  return;

                    $com=get_comment($comment_id);
                    if ( !$com  )  return;

               $args = array(
  \'type\' => \'\',
  \'user_id\' => $com->user_id,
  \'meta_key\' => \'consider\',
  \'meta_value\' => \'1\',
);
$com2= get_comments($args);
             $count = count($com2);

                     if( $count%10==0) {

     $number_of_bronze_badges= get_user_meta($com->user_id,\'user_number_of_bronze_badges\',true);
        $number_of_bronze_badges= $number_of_bronze_badges + 1;

        update_user_meta($com->user_id, \'user_number_of_bronze_badges\', $number_of_bronze_badges);
        }
        }
我在这段代码中缺少了什么。非常感谢您的帮助。

1 个回复
SO网友:s_ha_dum

我想你只想get_comment 而不是get_comments 在这一行:

$com=get_comments($comment_id);
您只需按ID检查一条注释。get_comments 不会像你那样使用它。

有一张支票halfway through the update_metadata function 在某些情况下,将现有价值与新价值进行比较。在update_comment_meta 钩子,有时return这样钩子就不会跑了。诚然,这是一个猜测,但如果传递相同的值,例如true 每次都可能是挂在这里。

这个update_{$meta_type}_metadata 钩子会开火,但它是一个过滤器,并不是这种钩子的最佳选择。我想知道你是否应该使用edit_comment hook instead.

结束