我整理了我的自定义主题并在调试模式下,我在评论部分得到一个未定义的变量。这是我的自定义评论部分,显示的未定义变量为aria_req
,req
和commenter
。此自定义注释功能位于我的函数文件中。我该如何解决这个问题?
// 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');
答案 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将被定义为''。