本文へスキップ

【WordPress】PopularPostsで特定のtaxnomyを指定したり除外する方法

更新

公開

目次

WordPressの「Popular Posts」プラグインは人気記事を自動で集計して表示してくれる便利なツールです。

WordPress.org 日本語

管理画面からは記事 ID やカテゴリー ID で対象を絞れる。 ただし同じ指定を PHP 側で書く方法はまとまった記事が見当たらなかったので、動く形で残しておく。

(基本記述)全期間の投稿ページの閲覧数ランキングを5件表示

    <?php
      global $post;
      $wpp_args = array(
        'range' => 'all', //集計する期間 {daily(1日), weekly(1週間), monthly(1ヶ月), all(全期間)}
        'order_by' => 'views', //表示順{views(閲覧数),comments(コメント数),avg(1日の平均)}
        'post_type' => 'post', //複数の場合は'post, name1, nem2'
        'limit' => 5, //表示数
      );
      $wpp_query = new \WordPressPopularPosts\Query( $wpp_args );
      $wpp_posts = $wpp_query->get_posts();
    ?>

一番良く使う書き方で、投稿ページで一番PVが多いものから降順に5件表示してくれます。期間は1ヶ月にしたりすることもありますが、基本はこの書き方の応用です。

(応用1)1ヶ月のカスタムページの閲覧数ランキング

    <?php
      $postType = 'hogehoge'; // カスタムページのスラッグ
      global $post;
      $wpp_args = array(
        'range' => 'monthly', //集計する期間 {daily(1日), weekly(1週間), monthly(1ヶ月), all(全期間)}
        'order_by' => 'views', //表示順{views(閲覧数),comments(コメント数),avg(1日の平均)}
        'post_type' => $postType, //複数の場合は'post, name1, nem2'
        'limit' => 5, //表示数
      );
      $wpp_query = new \WordPressPopularPosts\Query( $wpp_args );
      $wpp_posts = $wpp_query->get_posts();
    ?>

カスタムページを指定する場合は「post_type」の指定を変えることで表示ができます。これによりブログページにセミナーランキングを載せたり、posttypeを横断して表示することが可能になります。

(応用2)1ヶ月のカスタムページの特定のタクソノミー閲覧数ランキング

    <?php
      $postType = 'hogehoge'; // カスタムページのスラッグ
      $taxonomies = 'fugafuga'; // タクソノミーのスラッグ
      global $post;
      $wpp_args = array(
        'range' => 'monthly', //集計する期間 {daily(1日), weekly(1週間), monthly(1ヶ月), all(全期間)}
        'order_by' => 'views', //表示順{views(閲覧数),comments(コメント数),avg(1日の平均)}
        'post_type' => $postType, //複数の場合は'post, name1, nem2'
        'taxonomy' => $taxonomies, // タクソノミーを指定
        'term_id' => '10', // タグID
        'limit' => 5, //表示数
      );
      $wpp_query = new \WordPressPopularPosts\Query( $wpp_args );
      $wpp_posts = $wpp_query->get_posts();
    ?>

タクソノミーの指定は「taxonomy」の指定をすることでできます。この場合は「hogehogeのid10がついている記事だけ」でランキングをつくることになります。

反対に特定のterm_idがついているものだけを表示したくない場合は「-10」などマイナスをつけることで除外ができます。

Appendix

よく使うパラメータはこのあたりですが、公式のドキュメントにもっと多様なパラメータが載っているのでカスタマイズしたい方はこちらからどうぞ。

GitHub

パラメータパラメータ名データ型デフォルト記載例(ショートコード)
pid記事ID(post_id)Text stringNone[wpp pid="60, 25, 31"]
catカテゴリーID(category_id)Text stringNone[wpp cat="1, 55, -74"]
taxonomyタクソノミー名(taxonomy)Text stringNone[wpp taxonomy="post_tag" term_id="118, 75, 15"]
term_idタームID(term_id)Text stringNone[wpp taxonomy="category" term_id="1, 55, -74"]
author著者ID(author_id)Text stringNone[wpp author="1, 7"]

taxonomy と term_id はセミコロンで区切って複数指定できます(例: [wpp taxonomy="category; post_tag" term_id="1, 55, -74; 118, 75, 15"])。wpp_get_mostpopular() を PHP から呼ぶ書き方は、上記の公式ドキュメントを参照してください。

RELATED

マーケティングの課題をご相談ください

現状のご説明だけでも構いません。まずはお問い合わせください。

ブログ一覧へ