お忙しい中、私の質問を閲覧いただきありがとうございます。
現在独学でWordPressを学習中なのですが、今回はWordPressの記事ページのコメント一覧の実装に伴い、複雑な問題が発生したため質問させていただきました。
もし解決できそう、または手助けになるアイディアをお持ちの方は、是非ご回答の程よろしくお願いいたします。
###前提・実現したいこと
--- 前提
WordPress 4.7.8
PHP 7.0.18
使用テーマ SKT Design Agency
Comment Rating Field Pluginでコメントに評価を付けられる仕様
functions.phpでコメントにコメントの種類を選択できるプルダウンメニューを追加済み(A, B, Cの3種類)
--- 目的
①WordPressの記事ページにて、コメント一覧をコメントの種類(A,B,C)別に表示したい。
②種類別に表示したコメントを最新順と評価の高い順に画面上で切り替えたい。
③それぞれのページネーションの実装
④同一ページで表示したいのは1種類のみ(他の種類はタブで切り替えたり、別URLを生成したりして切り替えたい)
###試したこと
single.phpでコメント一覧を各種類・ソート別に(3種類×ソート2種=6パターン)取得し、それぞれを表示する。
→実装してみたが、ページネーションのページ数が全件表示した際のページ数になってしまい、種類別に表示するとコメント数の整合性が取れない。
(ページネーションは10ページまで表示されているが、Aのコメントが2ページしか無い場合、3〜10ページが空白になる)
###思いついた実装方法
①記事ページのURLを複数生成する。(Aの最新順、Aの評価順……Cの評価順の6種類)
→同じ記事ページのURLを複数生成できるか分からない。テンプレートもURLを判別して使い分けることができるのか分からない。
②各種類の固定ページ(Aの最新順……Cの評価順の6種類)を用意し、記事ページに記事IDを渡すリンクを作成し、その固定ページへ飛ばす。("ブログURL/固定ページ?post_id=xxx"のような形)
受け渡されたIDをもとに固定ページでコメントを取得し、ページネーションを行う。
→ページネーションのURLが正常に生成されるのか?(パラメータが消えるのではないか?)
###参考サイト様
転職会議(http://jobtalk.jp/)
こちらのサイトの各企業様に寄せられた口コミ一覧が、とてもキレイで見やすかったので、自分でも実装してみたいと思いました。
###追記・修正
functions.phpでコメントにコメントの種類を選択できるプルダウンメニューを追加済み(A, B, Cの3種類)
↓
正しくはラジオボタンでした。
また、こちらの実装方法については以下の通りです。
add_filter( 'comment_form_defaults','change_comment_form'); function change_comment_form($default) { $commenter = wp_get_current_commenter(); //コメントの種類 $default['fields']['email'] .= '<p class="comment-form-author"> <label>コメントの種類</label> <input type="radio" name="contentDetail" value="種類A" id="contentKind01" checked/> <label for="contentKind01">'. __('種類A') . '</label> <input type="radio" name="contentDetail" value="種類B" id="contentKind02" /> <label for="contentKind02">'. __('種類B') . '</label> <input type="radio" name="contentDetail" value="種類C" id="contentKind03" /> <label for="contentKind03">'. __('種類C') . '</label> </p>'; return $default; }
wp_commentmetaテーブルに、meta_key="contentDetail"に紐付いてmeta_valueが入っている状態です。
回答2件
あなたの回答
tips
プレビュー