Simplicityの特徴 › フォーラム › Simplicityについての質問 › 既存のコメント欄に、入力欄を追加したり修正したいです
- このトピックには12件の返信、2人の参加者があり、最後ににより1年、 10ヶ月前に更新されました。
-
投稿者投稿
-
-
2016年6月10日 5:53 PM #42196ゆうゲスト
お世話になっております。
シンプリシティ、非常に使いやすくて気に入っております。恐れ入りますが、コメント欄の修正について質問させて下さい。
私が運営しているサイトの「会い会い傘」という投稿ページがあります。
http://one-brella.net/archives/1818このページのコメント欄について、
新しい入力欄を設けて、表示も変えたいです。
メールアドレス
ウェブサイト … は自分で非表示に出来るので大丈夫です。◆【新しい入力欄】は、
コメントをどうぞ
名前 (傘を渡す人)
名前 (傘を受け取った人)
撮影した都道府県上記のようにしたいです。
◆何かコメントを入力した際の、【表示】は、
1.名前:匿名 投稿日:2016/06/10(金) 16:40:19
↓ これを
1.投稿日:2016/06/10(金) 16:40:19
名前 (傘を渡す人):
名前 (傘を受け取った人):
撮影した都道府県:このように、複数段に渡り表示されるようにしたいです。
なにぶん素人なもので、どのファイルをどのように
修正したら良いのか分かりません。お手数ですが、宜しくお願い致します。
-
2016年6月10日 6:41 PM #42206わいひらキーマスター
コメントフォームの変更は、以下の記事を参考にしてみてください。
WordPress:コメントフォームをカスタマイズする方法 | NxWorldスレッドコメントの表示については、子テーマに、以下の関数を貼り付けて、中の文字列を好みのものに変更してください。
function thread_comment($comment, $args, $depth) { $GLOBALS['comment'] = $comment; ?> <li <?php comment_class(); ?> id="li-comment-<?php comment_ID() ?>"> <div id="comment-<?php comment_ID(); ?>"> <div class="comment-listCon"> <div class="comment-info"> <?php echo get_avatar( $comment, 48 );//アバター画像 ?> <?php printf('<span class="admin">名前:<cite class="fn comment-author">%s</cite></span> ', get_comment_author_link()); //投稿者の設定 ?> <span class="comment-datetime">投稿日:<?php printf('%1$s %2$s', get_comment_date('Y/m/d(D)'), get_comment_time('H:i:s')); //投稿日の設定 ?></span> <span class="comment-id"> ID:<?php //IDっぽい文字列の表示(あくまでIDっぽいものです。) $ip01 = get_comment_author_IP(); //書き込んだユーザーのIPアドレスを取得 $ip02 = get_comment_date('jn'); //今日の日付 $ip03 = ip2long($ip01); //IPアドレスの数値化 $ip04 = ($ip02) * ($ip03); //ip02とip03を掛け合わせる echo mb_substr(sha1($ip04), 2, 9); //sha1でハッシュ化、頭から9文字まで出力 //echo mb_substr(base64_encode($ip04), 2, 9); //base64でエンコード、頭から9文字まで出力 ?> </span> <span class="comment-reply"> <?php comment_reply_link(array_merge( $args, array( 'depth' =>$depth, 'max_depth' =>$args['max_depth']))) ?> </span> <span class="comment-edit"><?php edit_comment_link('編集',' ',''); //編集リンク ?></span> </div> <?php if ($comment->comment_approved == '0') : ?> <em>あなたのコメントは現在承認待ちです。</em> <?php endif; ?> <div class="comment-text"></div> <?php comment_text(); //コメント本文 ?> <?php //返信機能は不要なので削除 ?> </div> </div> <?php }
-
2016年6月11日 3:24 AM #42225ゆうゲスト
わいひら様、お世話になっております。
早速の返信ありがとうございました。
教えて頂きました、「コメントフォームをカスタマイズする方法」の
【6. コメントフォームに項目を追加する】
に書いてある情報を使って、
functions.php へソースを記述したら、
新たな1項目(名前 傘を受け取った人)をコメント欄に追加できました。ですが、同じ要領でfunctions.phpへ
2項目目(撮影した場所)を記述すると、画面が真っ白になるんです。
■■■■■■■■■■■■■■■■■■■■■■■■■■■■//コメント欄に名前の追加 function add_comment_fields($fields) { $fields['n2'] = '<p class="comment-form-n2"><label for="n2">' . __( '名前 (傘を受け取った人)' ) . '</label>' . '<input id="n2" name="n2" type="text" size="30" /></p>'; return $fields; } add_filter('comment_form_default_fields', 'add_comment_fields'); function add_comment_meta_values($comment_id) { if(isset($_POST['n2'])) { $n2 = wp_filter_nohtml_kses($_POST['n2']); add_comment_meta($comment_id, 'n2', $n2, false); } } add_action ('comment_post', 'add_comment_meta_values', 1); //コメント欄に撮影場所の追加 function add_comment_fields($fields) { $fields['basyo'] = '<p class="comment-form-basyo"><label for="basyo">' . __( '撮影した場所' ) . '</label>' . '<input id="basyo" name="basyo" type="text" size="30" /></p>'; return $fields; } add_filter('comment_form_default_fields', 'add_comment_fields'); function add_comment_meta_values($comment_id) { if(isset($_POST['basyo'])) { $basyo = wp_filter_nohtml_kses($_POST['basyo']); add_comment_meta($comment_id, 'basyo', $basyo, false); } } add_action ('comment_post', 'add_comment_meta_values', 1);
■■■■■■■■■■■■■■■■■■■■■■■■■■■■
何が原因でしょうか?わいひらさんに聞くのは筋違いかもしれませんが
何卒、お力を貸して頂ければと存じます。 -
2016年6月11日 8:33 PM #42253わいひらキーマスター
画面が真っ白になるということは、何処かしらにコードのエラーがあると思います。
WordPressのデバッグモードなどの設定をして、エラーメッセージを表示させてエラーを修正してください。
ただ、PHPコードの不具合は、サポート対象外のものにあるように、こちらから原因箇所は見れないのでできれば自前で解決していただければと思います。 -
2016年6月11日 9:55 PM #42261Hidekichiゲスト
ちらっと見た感じ、
__( ‘名前 (傘を受け取った人)’ )
こういうやつは、国際化(ローカライズ?)するためのもので、
__("file")
こうなってると、それは「ファイル」と翻訳されます。つまり、ここは普通に'名前(傘を受け取った人)'
としておけばよいのではないかと。また、
$file = __("file");
このように変数に入れて使い、$massage = "this ".$file." is .txt."; this ファイル is .txt
とまぁちょっと無理矢理なサンプルですが、こういう具合になります。
_e()なんてのもありますが、これはecho、つまりその場で翻訳された語句を出力するためのものです。
で、正しく動かどうかはわかりませんが、
function add_comment_fields($fields) { $fields["n2"] = '<p class="comment-form-n2"><label for="n2">名前 (傘を受け取った人)</label><input id="n2" name="n2" type="text" size="30" /></p>'; $fields['basyo'] = '<p class="comment-form-basyo"><label for="basyo">撮影した場所</label><input id="basyo" name="basyo" type="text" size="30" /></p>'; return $fields; } add_filter('comment_form_default_fields', 'add_comment_fields'); function add_comment_meta_values($comment_id) { if(isset($_POST['basyo'])) { $basyo = wp_filter_nohtml_kses($_POST['basyo']); add_comment_meta($comment_id, 'basyo', $basyo, false); } if(isset($_POST['n2'])) { $n2 = wp_filter_nohtml_kses($_POST['n2']); add_comment_meta($comment_id, 'n2', $n2, false); } } add_action ('comment_post', 'add_comment_meta_values', 1);
こんな感じでどうかなと思ったり。
-
2016年6月11日 10:29 PM #42263ゆうゲスト
わいひら様、Hidekichi様、お世話になっております。
◆Hidekichiさんのソースコードを functions.phpへ記述し、
◆表示については、
lib-comment.phpの任意の箇所へ、<?php echo “名前 (傘を受け取った人): “.get_comment_meta( $comment->comment_ID, ‘n2’, true ); ?><br>
<?php echo “傘を撮影した場所: “.get_comment_meta( $comment->comment_ID, ‘basyo’, true ); ?><br>と記述したら一発で解決しました!
本当に有難うございました。
-
2016年8月6日 1:09 PM #44151masaゲスト
コメント欄のカスタマイズでこちらにたどり着きました。
やりたいことはシンプルに、
コメント入力欄や名前入力欄の上部のテキストを
「コメントをどうぞ」→任意のテキストに変更したい
「名前」→「お名前」や「ニックネーム」、「ペンネーム」などサイトによって任意に変更したいという感じです。
わいひらさん紹介の
WordPress:コメントフォームをカスタマイズする方法 | NxWorld
も読んでみたのですが、simplicity2の子テーマのどこをどう手を入れたらいいか分からず
コメントさせていただきました。どうぞよろしくお願いいたします。
-
2016年8月6日 5:45 PM #44158わいひらキーマスター
設定状態によって、カスタマイズ方法は変わってくるので、設定状態を見るためコメント入力欄があるページのURLを掲載していただいていいですか?
-
2016年8月6日 10:29 PM #44159masaゲスト
-
2016年8月6日 10:59 PM #44160わいひらキーマスター
デフォルトのコメントタイプなので、
comments-default.phpファイルを子テーマ内にコピペして以下の部分を$args = array( 'title_reply' => get_theme_text_comment_reply_title(),//コメントをどうぞ 'label_submit' => get_theme_text_comment_submit_label(),//コメントを送信 );
以下のように変更すればいけるかと思います。
$args = array( 'title_reply' => get_theme_text_comment_reply_title(),//コメントをどうぞ 'label_submit' => get_theme_text_comment_submit_label(),//コメントを送信 'fields' => apply_filters( 'comment_form_default_fields', array( '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>', 'email' => '<p class="comment-form-email"><label for="email">メアド</label> ' . ( $req ? '<span class="required">*</span>' : '' ) . '<input id="email" name="email" type="text" value="' . esc_attr( $commenter['comment_author_email'] ) . '" size="30"' . $aria_req . ' /></p>', 'url' => '<p class="comment-form-url"><label for="url">あなたのサイト</label>' . '<input id="url" name="url" type="text" value="' . esc_attr( $commenter['comment_author_url'] ) . '" size="30" /></p>' ) ), );
※メールアドレスや、サイトが不要なら削除してください。
やり方はまんま以下に書かれている内容とほぼ同じです。
WordPress:コメントフォームをカスタマイズする方法 | NxWorld
関数リファレンス/comment form – WordPress Codex 日本語版 -
2016年8月8日 8:18 AM #44191masaゲスト
わいひらさん
> comments-default.phpファイルを子テーマ内にコピペして以下の部分を
中略
> 以下のように変更すればいけるかと思います。「comments-default.phpファイルを子テーマ内にコピペ」というのは、
ファイルの中身(コード)のコピーという認識で良いと思ったのですが、
FTP等で、ファイルを子テーマのフォルダにコピーという意味でしたか?コピペしたものは子テーマの functions.php へ貼り付け、で良かったと思うのですが、
いかがでしょうか?一度やってみて、WPの管理画面にアクセスできなくなったので、改めて確認したく
コメントさせていただきました。よろしくお願いいたします。
-
2016年8月8日 5:53 PM #44205わいひらキーマスター
書いてある通りに、ファイルをコピーします。
ファイルをコピーする理由としては以下を参照してください。
WordPressテーマのカスタマイズで子テーマを使うべき理由、使い方などファイルを子テーマフォルダにコピーしたあと、それをエディターで開いて編集します。
-
2016年9月3日 1:50 PM #44888masaゲスト
わいひら様
お返事が遅くなり大変失礼しました。
体調を崩しておりました。
ファイルコピーということ、了解しました。
試してみて、もしうまく行かなかった場合は、
またご質問させていただきます故、
よろしくお願いいたします。
-
-
投稿者投稿
- フォーラム「Simplicityについての質問」には新規投稿および返信を追加できません。