如何在函数中使用$_POST修复未定义的变量?

时间:2019-11-02 作者:Sh.Dehnavi

我有以下几点function 但有了这个错误:Notice: Undefined variable: rating. 我能修一下吗?

function save_comment_meta_rating($comment_id){
    if(!empty($_POST[\'rating\']))
        $rating = sanitize_text_field($_POST[\'rating\']);
        add_comment_meta($comment_id,\'rating\',$rating);

        // Then update the average rating.
        update_post_avg_rating( $comment_id );
}
add_action(\'comment_post\',\'save_comment_meta_rating\');  
谢谢

1 个回复
最合适的回答,由SO网友:Cas Dekkers 整理而成

您的支票不正确:现在,它试图访问$_POST[\'rating\'], ,然后检查该值是否为空。此外,您应该确定if 语句,因为现在,即使没有提供新的评级,您的代码也会尝试更新平均评级。尝试:

function save_comment_meta_rating( $comment_id ){
    if ( ! array_key_exists( \'rating\', $_POST ) || empty( $_POST[\'rating\'] ) ) {
        return;
    }

    $rating = sanitize_text_field( $_POST[\'rating\'] );
    add_comment_meta( $comment_id, \'rating\', $rating );

    // Then update the average rating.
    update_post_avg_rating( $comment_id );  
}
add_action( \'comment_post\', \'save_comment_meta_rating\' );

相关推荐

我的WordPress插件代码中断定制.php视点

我对我的插件做了一些调整,试图让它恢复并使用升级的API/后端运行。遗憾的是,我的最新修改只注释了几行,我打破了后端视图来定制小部件。我想知道以前是否有人见过这个?如果代码有帮助的话,我的代码在Gitlab上。它相当长,而且不能百分之百确定它现在在哪里中断,所以不确定要添加哪个片段。当前视图:https://i.stack.imgur.com/Jxrbv.png