WordPressのwpDiscuzプラグインはwordpressのコメントをajax化できます。しかしwpDiscuzのコメントシステムを使っていると、投稿されたコメントはコメントリストの先頭に挿入されるため、wordpress標準のコメントシステムとは異なる動作になっていることがわかります。
この問題を解決するための記事です。
結論、この問題は解決できません。
結論から話しますと、wpDiscuzで新しいコメントをコメントリストの末尾に追加することは基本的にできないと思って下さい。ですが応急的な対応はできますので、それについてこれから解説していきます。
プラグインのjavascritを修正する
プラグインのjavascriptを修正が非推奨な理由
コメントを挿入する動作はwpDiscuzのjsファイルに記述されていますが、これを修正してもプラグインの更新があった場合に上書きされてしまうため、プラグイン本体のjsファイルの修正は推奨しません。
どうしてもという場合にはjavscriptファイルを修正することができます。
プラグインのjsファイルをデキューして自前のjsファイルをエンキューする
よくあるパターンとしてプラグインのファイルをデキューして自前のjsファイルを読み込めば問題が解決するのでは?と思われるかもしれません。しかし、わたしは実際にこの方法を試しましたが、jsファイル自体が他のファイルにも関連づけられているのでwpDiscuzが動作しませんでした。ですので自前の単体のjsファイルを読み込むだけではこの問題は解決できません。
wpDiscuzプラグインのjsファイルを修正する
最初に述べたように、プラグインの更新があった場合、修正しても上書きされる点に注意してください。それを理解した上で話をすすめます。
まずwpdiscuzのjavascriptファイルは以下の場所にあります。
/wp-content/plugins/wpdiscuz/assets/js
このなかにあるjsファイルのうちどれがコメントリストへの挿入動作を定義しているのかというと、以下になります。
- wpdiscuz.js
- wpdiscuz.min.js
- wpdiscuz-combo.min.js
- wpdiscuz-combo-no_quill.min.js
この4つのファイルのうち実際にページに読み込まれるファイルはひとつになりますが、これはwpdiscuzの設定により異なります。どのファイルがページに読み込まれている確認するにはブラウザの「ページのソースを表示」で確認してください
例としてwpdiscuz-combo-no_quill.min.jsを修正します。
(“.wpd-thread-list”).prepend(t)
↓
(“.wpd-thread-list”).append(t)
prependをappendに変更して保存します。これでコメントリストの末尾にコメントが挿入されるようになります。ちなみにjsファイルによってソースは異なりますのでjavascriptの知識がまったくない状態だと厳しいかもしれません。
wpDiscuz公式のやり方ではないので注意する
今回紹介した方法は応急的な処置なので、基本的にこの方法は使わないことを推奨します。そもそも論としてwpDiscuzにはコメントを実際のページでソートできる機能があるのでそこまで問題はありません。
ただコメントをデフォルトで古い順にしている場合、デフォルトのコメント挿入の場合は新しいものが上に挿入されるので少し違和感はあるかもしれません。
総じて言えることはこの問題をwpDiscuzのサポートフォーラムで発言することです

問題を報告すると解決方法を提案してくれるかもしれませんし、将来的にコメントリストの末尾にコメントを挿入できる設定が追加されるかもしれません。
まとめ
残念ですが現在のwpDiscuzはコメントリストの末尾にコメントを挿入する設定は実装されていませんので応急的な対応をするしかないと思われます。
コメント