私はデフォルトのWordPressコメントフォームに追加しようとしています。各フィールドにplaceholder = ""を追加する必要があります。フィルターがわかりません。エラーは発生しませんが、プレースホルダーも表示されません。
1時間ここで投稿を検索した後、私はこれまでにこれを思い付きました
function my_fields($args){
$commenter = wp_get_current_commenter();
$user = wp_get_current_user();
$user_identity = $user->exists() ? $user->display_name : '';
$req = get_option( 'require_name_email' );
$aria_req = ( $req ? " aria-required='true'" : '' );
$fields['author'] = '<input id="author" placeholder="name" name="author" type="text" value="'
. esc_attr( $commenter['comment_author'] ) . '" size="30"' . $aria_req . ' /></p>';
return $args;
}
add_filter('comment_form', 'my_fields');
私はさまざまなバリエーションを試し、さまざまなものを返すよう試みましたが、運が悪いです。
placeholder
属性を追加するには、'comment_form_default_fields'
をフィルター処理する必要があります。
add_filter( 'comment_form_default_fields', 'wpse_62742_comment_placeholders' );
/**
* Change default fields, add placeholder and change type attributes.
*
* @param array $fields
* @return array
*/
function wpse_62742_comment_placeholders( $fields )
{
$fields['author'] = str_replace(
'<input',
'<input placeholder="'
/* Replace 'theme_text_domain' with your theme’s text domain.
* I use _x() here to make your translators life easier. :)
* See http://codex.wordpress.org/Function_Reference/_x
*/
. _x(
'First and last name or a nick name',
'comment form placeholder',
'theme_text_domain'
)
. '"',
$fields['author']
);
$fields['email'] = str_replace(
'<input id="email" name="email" type="text"',
/* We use a proper type attribute to make use of the browser’s
* validation, and to get the matching keyboard on smartphones.
*/
'<input type="email" placeholder="[email protected]" id="email" name="email"',
$fields['email']
);
$fields['url'] = str_replace(
'<input id="url" name="url" type="text"',
// Again: a better 'type' attribute value.
'<input placeholder="http://example.com" id="url" name="url" type="url"',
$fields['url']
);
return $fields;
}
label
の代わりに使用しないでください。スクリーンリーダーのユーザーは非常に腹を立てるでしょう。そしてそれは 許可されていません とにかくです。type
属性も変更しました。これはあなたの訪問者がplaceholder
以上に役立つでしょう。私はあなたがこのフィルタを使いたいと思うと思います:
comment_form_default_fields
特定の分野にも焦点を当てることができます。
comment_form_field_$name
参照用に編集します。