久しぶりにwordpressのカスタマイズ依頼が来た。
依頼内容の中でコメント欄のフィールド並び順を変更したいとの事。
前は名前とかメールアドレスが上にあった気がしたのだが、今はコメント本文が一番上に来ている。
調べてみるとVersion4.4辺りで変更になったらしい。
「comment_form_fields」を使う
既存のコードがフィールドのカスタマイズを凄いぐちゃぐちゃにやっているので、なるべく影響が無いようにと言う事で、以下のコードで対応した。
add_filter( 'comment_form_fields', 'change_comment_form_order');
function change_comment_form_order($fields) {
return array(
$fields['author'],
$fields['comment'],
$fields['email']
);
}
unset使っているサンプルを良く見かけたけど、引数の$fieldsが、comment、author、emailの並び順で来るので、unsetを使うと全部unsetしないといけない。(と思う)
なので、さくっと新規の配列を作って完了。
コメント