Я использую пользовательский фильтр для изменения полей, но не могу понять, как изменить порядок полей в форме комментария.
Желаемый заказ:
- поле комментария (первая / верхняя)
- название
- Эл. адрес
- Веб-сайт
Это код, который я сейчас использую:
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
источник
источник
comment_form_top
.comment_form_before_fields
лучше, чем ловушкаcomment_form_top
Мне понравился тошо ответ. Однако я хотел использовать пользовательскую текстовую область, поэтому она не работала в этом случае. Я использовал те же хуки, но с отдельными функциями:
источник
Очевидно, есть несколько способов сделать это. Например, чтобы переместить поле комментария в конец формы, вы должны использовать такой код:
Если вы хотите переставить все поля, снимите все поля. Поместите их обратно в массив в том порядке, в котором вы хотите, чтобы они отображались. Просто верно?
Я подумал, что четко изложу это для следующего нуби, такого как я, чтобы найти эту страницу и не найти ответы полезными.
источник
Точный CSS для этого будет зависеть от вашей темы, однако, вот один из способов:
Методы отображения таблицы позволяют изменить порядок вещей произвольной высоты.
Больше информации: http://tanalin.com/en/articles/css-block-order/
источник
#commentform { display: flex; flex-flow: column; }
.comment-form-comment { order: -1; }
.поля формы комментария находятся в массиве
$fields
в функцииcomment_form()
. Вы можете подключиться внутри фильтраcomment_form_default_fields
и изменить порядок массива.Также вы можете подключить фильтр
comment_form_defaults
и изменить настройки по умолчанию; оставьте все данные в массиве и измените толькоfield
массив с вашими пользовательскими полями; включить HTML.по умолчанию, если $ fields:
источник