Ich benutze einen benutzerdefinierten Filter, um die Felder zu ändern, kann aber nicht herausfinden, wie die Reihenfolge der Felder im Kommentarformular geändert werden kann .
Gewünschte Bestellung:
- Kommentarfeld (zuerst / oben)
- Name
- Webseite
Dies ist der Code, den ich momentan benutze:
function alter_comment_form_fields($fields){
$fields['comments'] = 'Test';
$fields['author'] = '<p class="comment-form-author">' . '<label for="author">' . __( 'Your name, please' ) . '</label> ' . ( $req ? '<span class="required">*</span>' : '' ) .
'<input id="author" name="author" type="text" placeholder="John Smith" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30"' . $aria_req . ' /></p>';
$fields['email'] = 'next'; //removes email field
//$fields['url'] = ''; //removes website field
return $fields;
}
add_filter('comment_form_default_fields','alter_comment_form_fields');
comments
templates
comment-form
jrutter
quelle
quelle
comment_form_top
.comment_form_before_fields
es besser zu seincomment_form_top
Ich mochte es, zu antworten. Ich wollte jedoch ein benutzerdefiniertes Textfeld verwenden, sodass es in diesem Fall nicht funktionierte. Ich habe die gleichen Haken verwendet, aber mit separaten Funktionen:
quelle
Es gibt offensichtlich eine Reihe von Möglichkeiten, um dies zu erreichen. Um beispielsweise das Kommentarfeld an den unteren Rand des Formulars zu verschieben, verwenden Sie folgenden Code:
Wenn Sie alle Felder neu anordnen möchten, deaktivieren Sie alle Felder. Fügen Sie sie wieder in der Reihenfolge in das Array ein, in der sie angezeigt werden sollen. Einfach richtig?
Ich dachte mir, ich würde es ausdrücklich so formulieren, dass der nächste Neuling wie ich diese Seite findet und die Antworten nicht nützlich sind.
quelle
Das genaue CSS hierfür hängt von Ihrem Thema ab. Hier ist jedoch eine Möglichkeit:
Mit den Methoden zur Tabellendarstellung können Sie Elemente beliebiger Höhe neu anordnen.
Weitere Informationen: http://tanalin.com/de/articles/css-block-order/
quelle
#commentform { display: flex; flex-flow: column; }
.comment-form-comment { order: -1; }
.Die Felder der Kommentarform sind im Array
$fields
in Funktioncomment_form()
. Sie können den Filter einhängencomment_form_default_fields
und das Array neu anordnen.Sie können sich auch in den Filter einhängen
comment_form_defaults
und die Standardeinstellungen ändern. Lassen Sie alle Daten im Array und ändern Sie nur diefield
des Arrays mit Ihren benutzerdefinierten Feldern. Fügen Sie das HTML hinzu.die Standardeinstellung wenn $ Felder:
quelle