Estou usando um filtro personalizado para alterar os campos, mas não consigo descobrir como alterar a ordem dos campos no formulário de comentários.
Pedido desejado:
- campo de comentário (primeiro / superior)
- nome
- o email
- local na rede Internet
Este é o código que estou usando atualmente:
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
fonte
fonte
comment_form_top
.comment_form_before_fields
é melhor gancho seguidacomment_form_top
Eu gostei da resposta do toscho. No entanto, eu queria usar uma área de texto personalizada, portanto não funcionou nesse caso. Usei os mesmos ganchos, mas com funções separadas:
fonte
Obviamente, existem várias maneiras de conseguir isso. Por exemplo, para mover o campo de comentário para a parte inferior do formulário, você usaria código como este:
Se você deseja reorganizar todos os campos, desmarque todos os campos. Coloque-os de volta na matriz na ordem em que você deseja que eles sejam exibidos. Simples né?
Imaginei que explicaria explicitamente para o próximo noobie como eu encontrar esta página e não encontrar as respostas úteis.
fonte
O CSS exato para fazer isso dependerá do seu tema, no entanto, aqui está uma maneira:
Os métodos de exibição de tabela permitem reordenar itens de altura arbitrária.
Mais informações: http://tanalin.com/en/articles/css-block-order/
fonte
#commentform { display: flex; flex-flow: column; }
.comment-form-comment { order: -1; }
.os campos od formulário de comentário estão na matriz
$fields
em funçãocomment_form()
. Você pode conectar dentro do filtrocomment_form_default_fields
e reordenar a matriz.Além disso, você pode conectar o filtro interno
comment_form_defaults
e alterar os padrões; deixe todos os dados na matriz e altere apenas ofield
da matriz com seus campos personalizados; inclua o html.o padrão se $ fields:
fonte