pre_get_commentsによるコメントの抽出・検索方法

あああああああ   My Blog

WordPrssのコメント機能はDisqusFacebook Comment Boxに押され気味で利用率が減っているように思いますが、口コミサイトなどユーザーからの投稿を受け付けるサイトの場合はなくてはならない機能です。

コメントを記事と同じく柔軟に好きな条件で抽出することができれば、更に自由度が上がるのではないかと思い、調べてみました。

AD

pre_get_commentsというアクションフックがあった

記事をタクソノミーやカスタムフィールドなど好きな条件で抽出を行う場合に、pre_get_postsというフィルターフックを使います。

このpre_get_postsと同じような、記事ではなくコメントに対するpre_get_commentsというpre_get_postsのコメント版とも言うべきアクションフックがあり、こちらを使うことでコメントに対しても様々な条件で抽出することが可能です。

基本的な使い方

テーマファイルへの記述

まずhome.phpやsingle.phpにget_commentsを使ったコメント一覧が表示されるような箇所を用意します。
pre_get_commentsはget_comments()内で使われるWP_Comment_Queryクラスの中で使われます。

functions.phpにpre_get_commentsを書く

次に、functions.phpにpre_get_commentsのアクションフックを書きます。
ほぼpre_get_postsと同じように書けますので、書き慣れている人ならそれほど抵抗ないのではないかと思います。

pre_get_postsとの違いはtax_queryがないぐらいで、ほぼ同等と言えます。
meta_query,data_queryが特に有用ですね。

get_comments:WordPress私的マニュアル

wp_list_comments()の場合は?

コメントを一覧表示させたいときに使う関数としてはwp_list_comments()がおなじみです。
このwp_list_comments()による表示を調整したい場合はどうすればいいのでしょう?

もしかしてできない?

wp_list_comments()のソースを見てましたが、$wp_query内に入っているcommentオブジェクトを丸ごと呼んでいるだけなのでできなさそうな感じが…。
方法をご存知の方は教えていただけると幸いです_(._.)_

まとめ

個人的にはコメントはカスタムフィールドをいくつか持ったコメントという投稿タイプの記事だと思っています。
記事と同じく表現方法さえ工夫すればコンテンツを充実する助けになるのではないでしょうか。
参考になれば幸いです。

AD

Share

Commentsコメント

メールアドレスは公開されません。コメントは必ずご入力ください。

HTMLタグは使用できません。ソースコードを書き込みたい場合はCodetterGistCodePenなどのご利用が便利です。

コメントはまだありません。