评论wordpress上的未定义变量

时间:2013-12-23 21:09:42

标签: php wordpress

我整理了我的自定义主题并在调试模式下,我在评论部分得到一个未定义的变量。这是我的自定义评论部分,显示的未定义变量为aria_reqreqcommenter。此自定义注释功能位于我的函数文件中。我该如何解决这个问题?

// Edit Comment Forms
function alter_comment_form_fields($fields){

    $fields['author'] = '<div class="row"><div class="col-md-4"><p class="comment-form-author">' . '<label for="author">' . __( 'Name' ) . '</label> ' . ( $req ? '<span class="required">*</span>' : '' ) .
                    '<input id="author" name="author" type="text" placeholder="Name" value="' . esc_attr( $commenter['comment_author'] ) . '"' . $aria_req . ' /></p></div>';
//Edit Email Field
$fields['email'] = '<div class="col-md-4"><p class="comment-form-author">' . '<label for="email">' . __( 'Email' ) . '</label> ' .                  ( $req ? '<span class="required">*</span>' : '' ) .
                    '<input id="email" name="email" type="text" placeholder="Email" value="' . esc_attr( $commenter['comment_author_url'] ) . '" "' . $aria_req . ' /></p></div>';
//Edit Website Field
$fields['url'] = '<div class="col-md-4"><p class="comment-form-author">' . '<label for="url">' . __( 'Website' ) . '</label> ' .                        ( $req ? '<span class="required">*</span>' : '' ) .
                    '<input id="url" name="url" type="text" placeholder="Website" value="' . esc_attr( $commenter['comment_author_url'] ) . '"' . $aria_req . ' /></p></div></div>';               

    return $fields;
}

add_filter('comment_form_default_fields','alter_comment_form_fields');

3 个答案:

答案 0 :(得分:3)

您可以参考http://codex.wordpress.org/Function_Reference/comment_form
可以通过以下方式在代码上方(在函数体的开头)定义变量:

$commenter = wp_get_current_commenter();
$req = get_option( 'require_name_email' );
$aria_req = ( $req ? " aria-required='true'" : '' );

答案 1 :(得分:0)

在表达式中使用尚未初始化的变量时,会发生未定义的索引错误。你可以做的是使用isset()来检查变量是否为null,然后再尝试使用它。

答案 2 :(得分:0)

尝试放

$aria_req = ($req) ? " aria-required='true'" : '' ;

在$ comments_args之前。它对我有用。

错误因为$ aria_req undefined或null而出现。 当$ req为空/ null时,$ aria_req将被定义为''。