Używam niestandardowego filtra do zmiany pól, ale nie mogę wymyślić, jak zmienić kolejność pól w formularzu komentarza.
Pożądane zamówienie:
- pole komentarza (pierwszy / górny)
- imię
- stronie internetowej
Oto kod, którego obecnie używam:
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
źródło
źródło
comment_form_top
.comment_form_before_fields
jest lepszy hak następniecomment_form_top
Podobała mi się odpowiedź Toscho. Chciałem jednak użyć niestandardowego obszaru tekstowego, więc nie zadziałało w tym przypadku. Użyłem tych samych haków, ale z osobnymi funkcjami:
źródło
Istnieje oczywiście wiele sposobów osiągnięcia tego celu. Na przykład, aby przenieść pole komentarza na dół formularza, użyj kodu w następujący sposób:
Jeśli chcesz zmienić kolejność wszystkich pól, odznacz wszystkie pola. Umieść je z powrotem w tablicy w kolejności, w jakiej mają być wyświetlane. Proste prawda?
Doszedłem do wniosku, że przeliteruję to wyraźnie, aby następny użytkownik, taki jak ja, znalazł tę stronę i nie znalazł użytecznych odpowiedzi.
źródło
Dokładny CSS, aby to zrobić, będzie zależeć od twojego motywu, jednak jest jeden sposób:
Metody wyświetlania tabeli umożliwiają zmianę kolejności elementów o dowolnej wysokości.
Więcej informacji: http://tanalin.com/en/articles/css-block-order/
źródło
#commentform { display: flex; flex-flow: column; }
.comment-form-comment { order: -1; }
.pola formularza komentarza znajdują się w tablicy
$fields
w funkcjicomment_form()
. Możesz zaczepić filtrcomment_form_default_fields
i zmienić kolejność tablicy.Możesz także zaczepić filtr
comment_form_defaults
i zmienić ustawienia domyślne; zostaw wszystkie dane w tablicy i zmień tylkofield
tablicę za pomocą niestandardowych pól; dołącz html.domyślnie jeśli pola $:
źródło