WordPress关于评论相关的钩子
  • 3年前
  • WordPress关于评论相关的钩子509
  • 今天写一个功能的时候需要考虑到评论的状态变化,比如提交评论、删除评论、评论通过等等关于评论相关的状态变化,但是我没有找到一个有效的函数或者相关内容来整体管理,于是乎只能求助谷歌了,搜索一番之后,了解到看来不是我一个人的问题。

    图片所示,是九年前的内容,但是很幸运的就只作者在2020年6月的时候更新了一次,结果如下:

    所以说国外的WordPress的开发者是真的比较敬业了,他完全没有理由也没有衣服去更新,希望国内的开发者们也能像国外一样吧。

    add_action('edit_comment', 'update_business_rating_avg');
    add_action('comment_post', 'update_business_rating_avg');
    add_action('comment_unapproved_to_approved', 'update_business_rating_avg');
    add_action('comment_approved_to_unapproved', 'update_business_rating_avg');
    add_action('comment_spam_to_approved', 'update_business_rating_avg');
    add_action('comment_approved_to_spam', 'update_business_rating_avg');
    add_action('comment_approved_to_trash', 'update_business_rating_avg');
    add_action('comment_trash_to_approved', 'update_business_rating_avg');
    
    function update_business_rating_avg($comment){
        if ( !is_object( $comment ) ){
            $comment = get_comment( $comment );
        }
        
        $post_id = $comment->comment_post_ID;
        $post_type = get_post_type($post_id);
        if('business' == $post_type){
            $avg = 0;
            global $wpdb;
            $query = "SELECT AVG(meta_value) FROM $wpdb->commentmeta ";
            $query .= "INNER JOIN $wpdb->comments ON $wpdb->commentmeta.comment_id = $wpdb->comments.comment_ID " ;
            $query .= "WHERE $wpdb->commentmeta.meta_key = 'rating' ";
            $query .= "AND $wpdb->comments.comment_approved = 1 ";
            $query .= "AND $wpdb->comments.comment_post_ID = '$post_id'";
            
            if( $result = $wpdb->get_var($wpdb->prepare($query)) ){
                $avg = roundToNearestFraction($result, 0.5);
                update_post_meta($post_id, 'avg_rating', $avg);
            }else{
                // report error
                //$wpdb->print_error();
            }
        }
    }
    

    这里我们不用在于功能函数是什么内容,我主要是想告诉大家关于WordPress中评论相关的钩子有哪些,希望大家能用到。

  • 联系我们
  • 有任何疑问欢迎联系我们
  • WP新手学园
  • WordPress关于评论相关的钩子
  • 邮箱:2830776172#qq.com(#换成@)
  • 回复时间:9:00-19:00
  • 如果提问.请图文并茂,详细描述问题
  • WordPress关于评论相关的钩子
  • 微信号:wpxsxy_official
  • 仅支持付费解决问题
  • *并非所有问题都会被回复
  • WordPress关于评论相关的钩子
  • QQ:2830776172
  • 回复时间:9:00-19:00
  • QQ仅支持付费提问,时间有限,尽情谅解
  • WordPress关于评论相关的钩子
  • QQ群:198768181
  • 有问题可以进去提问,寻求群友帮助
  • *并非所有问题都会被回复
  • WordPress关于评论相关的钩子
  • 咸鱼:WP新手学园
  • 如果对于直接交易不放心,可以走闲鱼
  • *咸鱼价格不作为最终交易价格
  • 备案号:鄂ICP备2021011647号-1