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

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

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

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

mysqli

MySQLiはPHP5より導入されているデータベース用のドライバです。MySQL 4.1.3以降の新しい機能の利点をまとめています。

WordPress

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

PHP

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

Q&A

解決済

2回答

542閲覧

WP_Queryを使ってpostをコメント数で絞り込みたい

musashidayo

総合スコア53

if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

mysqli

MySQLiはPHP5より導入されているデータベース用のドライバです。MySQL 4.1.3以降の新しい機能の利点をまとめています。

WordPress

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

PHP

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

0グッド

0クリップ

投稿2018/04/05 05:25

タイトルの通りで、'orderby' => 'comment_count'を指定してコメント数でソートはできるようですが、コメント数で絞り込むにはどうするのが効率いいのでしょうか?
一つ思いつくのは、postのコメント数をupdate_post_meta($post_id, 'コメント数のスラッグ', コメント数);のようにしてDBに格納して、WP_Queryで

'meta_query' => array( 'compare' => '>=', 'key' => 'コメント数のスラッグ', 'value' => '絞り込みたい件数', )

とすればできそうな気もするのですが、もっと簡単に出来る方法があればアドバイス頂きたいです。

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

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

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

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

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

guest

回答2

0

ベストアンサー

comment_countによる検索、普通にできるようになったっぽいですよ
日本語のリファレンスには載ってなかったけど英語版にはちゃんと書いてますね

WP_query

投稿2018/04/05 08:41

編集2018/04/05 08:43
KazuhiroHatano

総合スコア7802

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

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

kszk311

2018/04/05 09:46

英語版盲点でした。できるんですね。
musashidayo

2018/04/05 09:46

検索に使えたんですね! こちらを参考に書き換えたらしっかり条件に合ったpostを取得する事ができました。 回答者の方々ありがとうございました!
guest

0

WP_Queryではないですが
ループ中にcomment_countをチェックする方法です。

php

1 $num = 0; 2 if(have_posts()){ 3 while ( have_posts() && $num < 2){ 4 the_post(); 5 6 //コメント数が2以上 7 if($post->comment_count > 2){ 8 9 //出力処理 10 the_title(); 11 12 $num++; 13 } 14 15 } 16 } 17

下記のような感じで取得はできたのですが、「〜以上」とか範囲の指定ができませんでした

php

1 $testPosts = get_posts(array( 2 'comment_count' => '3', 3 'orderby' => 'comment_count', 4 'order' => 'ASC' 5 )); 6

投稿2018/04/05 06:18

編集2018/04/05 06:20
kszk311

総合スコア3404

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

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

musashidayo

2018/04/05 06:47

回答ありがとうございます。やはりソートはできるものの範囲指定は少し書き換えたくらいだと難しいみたいですね。。 条件に当てはまったpostの件数を取得してページネーションも設定したいので出力最中にカウントしていると読み込みも増えて重くなりそうなのを危惧しているといった状況です。 できれば最初に全件数を絞り込んで取得したいのですが、厳しそうでしょうか。
kszk311

2018/04/05 07:37 編集

一旦は、DB側使わずにやろうかと思ったのですが、 やっぱりカスタムフィールド作って、 定期的に自身のコメント数をカスタムフィールドに入れる処理を作って、 meta_queryで範囲指定するのがいいですかね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問