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

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

WordPress.org 日本語
WordPress Popular Posts 高度にカスタマイズ可能で、使いやすい人気の投稿一覧プラグインです。

カスタマイズ画面から記事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
2. Template tags WordPress Popular Posts - A highly customizable WordPress widget that displays your most popular posts. - cabrerahector/wordpress-popular-posts
スクロールできます
パラメータパラメータ名データ型デフォルト記載例
pid記事ID(post_id)Text stringNoneWith wpp_get_mostpopular():$args = array(
‘pid’ => ’60, 25, 31′
);
wpp_get_mostpopular($args); ?>With the [wpp] shortcode:[wpp pid=’60, 25, 31′]
catカテゴリーID(category_id)text stringNoneWith wpp_get_mostpopular():<?php
$args = array(
‘cat’ => ‘1, 55, -74’
);
wpp_get_mostpopular($args);
?>With the [wpp] shortcode:[wpp cat=’1, 55, -74′]
taxonomyタクソノミーID(taxnomy_id)Text stringNoneWith wpp_get_mostpopular():<?php
$args = array(
‘taxonomy’ => ‘post_tag’,
‘term_id’ => ‘118, 75, 15’
);
wpp_get_mostpopular($args);
?><?php
$args = array(
‘taxonomy’ => ‘category; post_tag’,
‘term_id’ => ‘1, 55, -74; 118, 75, 15’
);
wpp_get_mostpopular($args);
?>With the [wpp] shortcode:[wpp taxonomy=’post_tag’ term_id=’118, 75, 15′][wpp taxonomy=’category; post_tag’ term_id=’1, 55, -74; 118, 75, 15′]
term_idタームID(term_id)Text stringNoneWith wpp_get_mostpopular():<?php
$args = array(
‘taxonomy’ => ‘category’,
‘term_id’ => ‘1, 55, -74’
);
wpp_get_mostpopular($args);
?>With the [wpp] shortcode:[wpp taxonomy=’category’ term_id=’1, 55, -74′]
author著者ID(author_id)Text stringNoneWith wpp_get_mostpopular():<?php
$args = array(
‘author’ => ‘1, 7’
);
wpp_get_mostpopular($args);
?>With the [wpp] shortcode:[wpp author=’1, 7′]
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次