Isso é bem simples. Você apenas tem que tirar o textarea
dos campos padrão - filtrar 'comment_form_defaults'
- e imprimi-lo na ação 'comment_form_top'
:
<?php # -*- coding: utf-8 -*-
/**
* Plugin Name: T5 Comment Textarea On Top
* Description: Makes the textarea the first field of the comment form.
* Version: 2012.04.30
* Author: Thomas Scholz <[email protected]>
* Author URI: http://toscho.de
* License: MIT
* License URI: http://www.opensource.org/licenses/mit-license.php
*/
// We use just one function for both jobs.
add_filter( 'comment_form_defaults', 't5_move_textarea' );
add_action( 'comment_form_top', 't5_move_textarea' );
/**
* Take the textarea code out of the default fields and print it on top.
*
* @param array $input Default fields if called as filter
* @return string|void
*/
function t5_move_textarea( $input = array () )
{
static $textarea = '';
if ( 'comment_form_defaults' === current_filter() )
{
// Copy the field to our internal variable …
$textarea = $input['comment_field'];
// … and remove it from the defaults array.
$input['comment_field'] = '';
return $input;
}
print apply_filters( 'comment_form_field_comment', $textarea );
}