コメント欄の項目名を変えたい
-
こんにちわ、WP_manabu さん。
comment_form_default_fields
というフィルターフックを使えば変更可能です。具体的な方法は、Codex に記載がありますので読んでみてください。KUCKLUさん、ご回答、ありがとうございます。
「フィルターフック」という言葉を糸口に、ネットで調べてみました。
コメントの画面が表示されると同時に、なんらかの関数を実行させる、と、まぁ、こんな感じでしょうか。貼っていただいたURL(Codex)を開いてみました。え、英語ですね。当方、(WordPressについても不案内ですが)英語はさっぱしですので、理解するのに、しばし時間がかかりそうで、あります。
フィルターフックを使わなくても、
comment_form()
関数の第一引数を指定すれば変更可能です。こちらも、具体的な方法は、Codex に記載がありますので読んでみてください。KUCKLUさま
日本語訳は、これ、ですね。
https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/comment_form日本語訳でも、しばし、理解に時間がかかりそうであります。時間をみつけて、検索などをたよりに、いろいろ試してみます。ありがとうございます。
上記に貼ったURLは、「まだ日本語Codexに存在しないページ」でした。「日本語訳」というより「未完成な日本語訳」という感じでしょうか。失礼しました。
function.phpに、次のように書いてみました。
でも、やっぱり、うまく行かないようであります。うーむ。add_filter( ‘comment_form_default_fields’, ‘my_comment_form_fields’);
$fields = array(
‘author’ =>
‘<p class=”comment-form-author”><label for=”author”>’ . __( ‘名前(ニックネームでいいよ)’, ‘domainreference’ ) . ‘</label> ‘ .
( $req ? ‘<span class=”required”>*</span>’ : ” ) .
‘<input id=”author” name=”author” type=”text” value=”‘ . esc_attr( $commenter[‘comment_author’] ) .
‘” size=”3コメント欄のラベルを変える件。いまだに、試行錯誤を繰り返しております。直近では、見よう見まねで、function.phpに、以下のような記述をしてみました。がしかし、うまく、ゆきません。どなたか、勘違いしている点、間違っている点を、ご指摘ください。
<?php
$fileds = ‘author’ =>
‘<p class=”comment-form-author”>’ .
‘<label for=”author”>名前(ニックネームでいいよ)</label> ‘ .
( $req ? ‘<span class=”required”>*</span>’ : ” ) .’
‘.
‘<input id=”author” name=”author” type=”text” value=”‘ . esc_attr( $commenter[‘comment_author’] ) .
‘” size=”30″‘ . $aria_req . ‘ /></p>’,
);comment_form( array(
‘fields’ => apply_filters( ‘comment_form_default_fields’, $fileds )
) );?>
こんにちは、
日本語訳でも、しばし、理解に時間がかかりそうであります。時間をみつけて、検索などをたよりに、いろいろ試してみます。ありがとうございます。
苦労しているようですね、私もワードプレスを使い始めたころ、「ちょっとそこんところ、すこしだけ変更したい」と思って、試行錯誤をしました。
ブログのコメント欄の「名前」という項目を、「名前(ニックネームでもいいよ)」に変更したいんです。
どのような手順を踏めばよいでしょうか。WordPressのフィルタを使う例 functions.phpに
add_filter('comment_form_field_author','my_comment_author'); function my_comment_author($author){ $custom_author = '<p class="comment-form-author"> <label for="author">名前 (ニックネームでもいいよ)<span class="required">*</span></label> <input id="author" name="author" type="text" value="" size="30" aria-required="true" required="required" /> </p>'; return $custom_author; }
PHPの学習がいまいちで、自分が何をやっているか理解できていないような段階なら、CSSでも、出来ます
twentyfifteen に適用する例.comment-form-author label[for="author"]{ color:rgba(0,0,0,0);//文字の色を透明に } .comment-form-author .required{ display:inline-block; position:relative; margin-left:-2em;//必須 アスタリスクの位置調整 2文字分左に } .comment-form-author label[for="author"]:before{ content:'名前(ニックネームでもいいよ)'; color:#555; //文字の色 }
解決方法は1つではありません、また、WordPressだから、サーバサイドのPHPを必ず使わなくてはいけないというものでもありませんが、PHPが基本になるので、簡単な方法だけで済ませていくと、偏った理解になりがちです
nobitaさま
ご回答、ありがとうございます。
(安直な方法になってしまいますが)とり急ぎ、Style.cssに、貼っていただいたCSSをコピー&ペーストしてみました。
そののち、コメントフォームをたしかめてみますと、「名前(ニックネーム)名前」という表記にかわっていました。
このことから、3つのことを学ぶことができました。
ひとつめ。
本件は、PHPでなく、CSSでも対応できること。ふたつめ。
ご紹介いただいたCSSは、まず既存の名前を透明にし…次に透明になったための空白(2文字分)を左に詰め…そのうえで名前(ニックネームでもいいよ)を貼る指示を行なうものである。そうに違いない。みっつめ。
本件は、テーマによって記述方法が異なること(ちなみに、当方はBizVectorを利用しております)ご指摘ののとおり、ネットで検索して、適当だと思われるものを自分で解釈して、あれこれやっても、もうこれは、奇跡を願うようなものであります。この点、時間をかけてphpの基礎から腰をすえて、学んでいきたいと存じます。
一方、短期的には、テーマにより問題の解消方法が異なることが分かりましたので、テーマの主宰するフォーラムに、ポイントをしぼって質問してみます。
(じつは、本件にかんしては、そのフォーラムに、やや異なる言い方で質問をしています。反応がまったくなかったわけですが、おかげさまで要領を得た質問ができそうです。そもそも本件がWordPressに属するものなのか、テーマに属するのか、自信が持てない状況でした。。。)
- トピック「コメント欄の項目名を変えたい」には新たに返信することはできません。