WordPressで投稿記事数をカウントする方法+特定の記事を除外する工夫

シゴトクリエイターの大橋です。

今回は、運営サイトでWordpressで記事数カウント表示をしている部分において、特定のカテゴリ記事数を表示したい時の技です。

とはいえ、単に引き算しているだけなんですが(笑)

スポンサーリンク

WordPressで記事投稿数のカウントがうまくいってない

まずは課題の整理です。運営サイトのWebサービス集めましたで、上の「サービス数:180件」ですが、今は正しくなっています。

以前は、「サービス数:184件」となっていて、余分に取得している状態でした。理由は簡単で、「全ての投稿記事を取得してそれをカウントしていたから」です。

記事数カウントの方法

実際には、$wpdbを用いて、SQLでcountしているコードがあります。これらは全記事数。よって、特定のカテゴリを別に取得し、その件数を引けばいいと考えました。

具体的には、特定のカテゴリとは「月間ランキング」のサービスを紹介する記事数です。これらが4記事現時点であります。

$numpostsが全記事数で、条件でWhereがありますが、公開されてかつ投稿タイプをしています。投稿記事でなく固定ページを取得したいなら固定ページにする必要があります。

$ranking_numpostsで、やや苦肉の策ですが月間ランキングに該当するものとして、投稿ファイル名で「ranking」を含むものとしてlikeで取ってきています。

全記事数 ー 月間ランキング記事数 = 投稿されたサービス数

で適当な変数に入れて、めでたしめでたしとなります。

ただおそらくですが、Wordpressでdb自体にアクセスしてSelectくらいならまだ良さそうですが、こういう直接のやり方って多分奨励されないなんだろうなあとか思います。他の方法は分からないので、一つのやり方としてメモです。

おわりに

ちなみに、レンタルサーバで適当にDBにWordpressをわちゃわちゃ入れていると接頭辞がどれか分からなくなって困るので、適度にDB整理をしましょう(笑)

どのDBに接続しているかは、wp_config.phpだったかな、DB設定にしっかり書いてあるので複数管理している人は間違いないようにしましょう。とはいえ、selectだけなのでデータが変更になることはないので問題ないでしょうね。

ビジネスって面白い、アイデアの価値ってもっとある。そんなことを自分なりに伝えられないかという思いから、シゴトクリエイターをやっています。一緒に楽しいビジネスを生みだしていきましょう。1記事でも何かヒントになれば嬉しいです。
スポンサーリンク