質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

4725閲覧

WordPress コメント追加、表示

退会済みユーザー

退会済みユーザー

総合スコア0

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/10/02 04:56

編集2017/10/04 13:41

1、実現したいこと
wordpressのコメント欄に書き込んだ人のタイプと記事の評価を追加したい
それらをコメントの一覧ページ(comments.php)で値を取得し、表示させたい

2、できない原因
独自の追加した要素のカラムがDBにないため値が取得できない

3、参考サイト
こちらをご覧ください

上記のサイトに一通りのやり方は書いてあるのですが

WordPressのインストールディレクトリにある、wp-comments-post.phpを編集します。92行目あたり(WordPress3.9.1時点)に、以下を追加します。

のように○行目と書いてあり、WordPressの最新verである4.8.2には
そのファイルには全体で62行までしかないのです。
実際どこに挿入すればいいのかわかりませんでした。

4、質問内容
・現在のWordPressのバージョンではどこに挿入すればいいのか
・又この館でできない場合、もっとも簡単な方法を教えてください
・追加も表示もできるプラグインがある場合教えてください

以上になります。
回答をお待ちしております。
宜しくお願い致します。

*追記

PHP

1 <h2>レビュー</h2> 2 <?php if(have_comments()): ?> 3 <ul> 4 <?php 5 $comments = get_comments(array( 6 'status' => 'approve', 7 'number' => 4 //四件表示 8 )); 9 foreach ($comments as $comment) {?> 10 <li> 11 <h3><?php the_title(); ?></h3> 12 <p><?php comment_author(); ?></p> 13 <p><?php echo mb_substr(get_comment_excerpt(), 0, 30); ?></p> 14 <a href="#">続きを読む</a> 15 </li> 16 <?php };?> 17 </ul> 18 <?php else : ?> 19 <p>まだ投稿されていません。</p> 20 <?php endif; ?> 21 </div> 22 23 <?php comment_form(); ?> 24

functions.phpは参考サイトと全く同じです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

コアを弄るような阿呆な記事は参考にされない方が良いです。

【wordpress】コメントの入力欄を追加する/wp_list_comments表示カスタマイズ
http://satohmsys.info/wp_list_comments_custom/

おっと失礼しました

4、質問内容
・現在のWordPressのバージョンではどこに挿入すればいいのか
・又この館でできない場合、もっとも簡単な方法を教えてください
・追加も表示もできるプラグインがある場合教えてください

上から順に
最初のはコメントした通り。
真ん中は逆に質問、この館とは何ですか?簡単な方法はコメントの通り。
最後は分かりません。

書き込んだ人のタイプと記事の評価

評価は分かりますが、タイプはなんですか?
性別?血液型?

何であれ先に記したサイトの方法でどうにでもなると思います。
分からなければ訊いてください。

追記
タイプと評価の入力方法など分からないので例に挙げたサイトのコードをそのままです。
レイアウトを含め自身が想うように変更してください。

functions.phpにコメントフォームへの項目追加とデータベースに保存する設定のみ追加

// 1.コメント項目の追加 add_filter( 'comment_form_defaults','change_comment_form_input'); function change_comment_form_input($default) { ///////入力項目のカスタマイズ(名前のあとにつづく) ////タイトル $default['fields']['email'] .= '<p class="comment-form-author commentForm-title"> <label for="commentTitle">'. __('タイトル') . '</label> <input type="text" name="commentTitle" value="" placeholder="この商品についてひとこと" /> </p>'; ////性別 $default['fields']['email'] .= '<p class="comment-form-author"> <label for="imMan"><input type="radio" name="sex" value="男性" id="imMan" />'. __('男性') . '</label> <label for="imWoman"><input type="radio" name="sex" value="女性" id="imWoman" />'. __('女性') . '</label> </p>'; ////年齢層 $default['fields']['email'] .= '<p class="commentForm-age"> <label for="teen"><input type="radio" name="commenterAge" value="10代" id="teen" />'. __('10代') . '</label> <label for="teen2"><input type="radio" name="commenterAge" value="20代" id="teen2" />'. __('20代') . '</label> <label for="teen3"><input type="radio" name="commenterAge" value="30代" id="teen3" />'. __('30代') . '</label> <label for="teen4"><input type="radio" name="commenterAge" value="40代" id="teen4" />'. __('40代') . '</label> <label for="teen5"><input type="radio" name="commenterAge" value="50代" id="teen5" />'. __('50代') . '</label> </p>'; return $default; } // 2 ちゃんとデータベースに入れる ///////データ更新 ////性別 add_action( 'comment_post', 'save_comment_meta_data_sex' ); function save_comment_meta_data_sex( $comment_id ) { $sex = $_POST['sex']; return update_comment_meta( $comment_id, 'sex', $sex, true); } ///タイトル add_action( 'comment_post', 'save_comment_meta_data_title' ); function save_comment_meta_data_title( $comment_id ) { $commentTitle = trim($_POST['commentTitle']); return update_comment_meta( $comment_id, 'commentTitle', $commentTitle, true); } ////年齢層 add_action( 'comment_post', 'save_comment_meta_data_age' ); function save_comment_meta_data_age( $comment_id ) { $commenterAge = $_POST['commenterAge']; return update_comment_meta( $comment_id, 'commenterAge', $commenterAge, true); }

wp_commentmetaに保存された内容を出力

<h2>レビュー</h2> <?php if(have_comments()): ?> <ul> <?php $comments = get_comments(array( 'status' => 'approve', 'number' => 4 //四件表示 )); foreach ($comments as $comment) { ?> <li> <h3><?php the_title(); ?></h3> <p><?php comment_author(); ?> - 年齢:<?php echo get_comment_meta( $comment->comment_ID, 'commenterAge' ,true ); ?> - 性別:<?php echo get_comment_meta( $comment->comment_ID, 'sex' ,true ); ?> - タイトル:<?php echo get_comment_meta( $comment->comment_ID, 'commentTitle' ,true ); ?> </p> <p><?php echo mb_substr(get_comment_excerpt(), 0, 30); ?></p> <a href="#">続きを読む</a> </li> <?php };?> </ul> <?php else : ?> <p>まだ投稿されていません。</p> <?php endif; ?> </div> <?php comment_form(); ?>

投稿2017/10/02 05:22

編集2017/10/04 23:52
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/10/04 12:53

この館→このやり方 誤字です、すいません。 タイプは「在学生」「卒業生」「保護者」という属性です。 載せてくださったサイトを参考にし、作ってみましたが表示はされませんでした。 おそらく最後の表示のところだけがうまくいっていないのだと思います。 その理由としては comments.phpにはwp list commentを使って表示しておらず comment_author(); mb_substr(get_comment_excerpt(), 0, 30); で名前と本文を30文字だけ表示させています。 この場合はどのようにcomments.phpにかけばいいのでしょうか?
退会済みユーザー

退会済みユーザー

2017/10/04 23:52 編集

回答修正しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問