Warum konnte meine Variable comment_form nicht funktionieren?

Ich arbeite an einem benutzerdefinierten Thema, das auf Starkers html5 3.0 basiert und das Kommentarsystem des Themas verwendet. Ich habe custom_form Tutorials von Otto , Soapbox Dave , forlogos und Deluxe Blog-Tipps gefolgt.

Mein gesamter Code scheint ordnungsgemäß zu funktionieren, außer dass ich keines der Felder außerhalb von comment_form_default_fields anzeigen kann. Dieses Thema ist als untergeordnetes Thema eingerichtet, aber es gibt noch keinen Kommentarcode im übergeordneten Thema.

Kannst du mir helfen, das Problem zu finden?

Zugehörige functionen.php Code:

// Custom Callback - Comments if ( ! function_exists( 'starkers_comment' ) ) : /** * Template for comments and pingbacks. * * @since Starkers HTML5 3.0 */ function starkers_comment( $comment, $args, $depth ) { $GLOBALS['comment'] = $comment; switch ( $comment->comment_type ) : case '' : ?> <article  id="comment-">  <a href="https://wordpress.stackexchange.com/questions/10014/why-could-my-comment-form-variable-not-be-working/comment_ID ) ); ?>">  ...  $depth, 'max_depth' => $args['max_depth'] ) ) ); ?>
comment_approved == '0' ) : _e( 'Your comment is awaiting moderation.', 'starkers' ); ?>
<article id="comment-">

<?php break; endswitch; } endif; /** * Closes comments and pingbacks with instead of . * * @since Starkers HTML5 3.0 */ function starkers_comment_close() { echo ''; } /** * Adjusts the comment_form() input types for HTML5. * * @since Starkers HTML5 3.0 */ function starkers_fields($fields) { $commenter = wp_get_current_commenter(); $req = get_option( 'require_name_email' ); $aria_req = ( $req ? " aria-required='true'" : '' ); $fields = array( 'author' => '

' . ( $req ? '*' : '' ) . '

', 'email' => '

' . ( $req ? '*' : '' ) . '

', 'url' => '

' . '

', ); return $fields; } add_filter('comment_form_default_fields','starkers_fields'); function my_fields($fields) { $fields['new'] = '

red rover 1

'; return $fields; } add_filter('comment_form_top','my_fields');

comments.php Code:

  

Activities

1 && get_option( 'page_comments' ) ) : // Are there comments to navigate through? ?> 'div', 'callback' => 'starkers_comment', 'end-callback' => 'starkers_comment_close' ) ); if ( get_comment_pages_count() > 1 && get_option( 'page_comments' ) ) : // Are there comments to navigate through? ?>

Is there anybody out there? <input type="hidden" name="my_user_id" value="" />

Solutions Collecting From Web of "Warum konnte meine Variable comment_form nicht funktionieren?"

Dieser Code macht keinen Sinn:

 function my_fields($fields) { $fields['new'] = '

red rover 1

'; return $fields; } add_filter('comment_form_top','my_fields');

Ich bin mir nicht einmal sicher, was es tun soll, denn comment_form_top ist eine Aktion, kein Filter.

Wenn Sie zusätzliche Felder hinzufügen möchten, sollten Sie den Filter “comment_form_default_fields” verwenden:

 add_filter('comment_form_default_fields','my_fields'); 

Dies funktioniert jedoch möglicherweise nicht oder kann zeitweise funktionieren, da die function Starkers_fields falsch geschrieben wird. Es sollte das sein:

 function starkers_fields($fields) { $commenter = wp_get_current_commenter(); $req = get_option( 'require_name_email' ); $aria_req = ( $req ? " aria-required='true'" : '' ); $fields['author'] = '

' . ( $req ? '*' : '' ) . '

'; $fields['email'] = '

' . ( $req ? '*' : '' ) . '

'; $fields['url'] = '

' . '

'; ); return $fields; } add_filter('comment_form_default_fields','starkers_fields');

Der Unterschied hier ist, dass diese Version die Felder ändert, anstatt sie direkt zu ersetzen. Dadurch können andere Felder unverändert passieren.

Angenommen, Sie möchten die function “starchers_fields” nicht ändern, da es sich um ein übergeordnetes Thema handelt, das Sie nicht steuern. Um die Unordnung zu vermeiden, können Sie die Filterpriorität anpassen, um sicherzustellen, dass my_fields danach ausgeführt wird:

 function my_fields($fields) { $fields['new'] = '

red rover 1

'; return $fields; } add_filter('comment_form_default_fields','my_fields',20);