「よく読まれる記事」のリストを表示する便利なプラグイン「WordPress Popular Posts」。
これまでは、wpp_custom_html をフィルターフックとして完全にフルカスタマイズしてコーディングしていた。
ところが、いつからか分からないが、wpp_custom_html をフィルターフックが効いておらず、デフォルトのリンクテキストと閲覧ビューが表示されていた。wpp_custom_html 以外のフィルターフック、wpp_post に書き換えて試してみるも、うまくいかない。
同様の症状が検索ヒットしないので、どうやら自分の環境でうまくいかないだけかもしれない。なんとか記事IDを取得できれば、と検索続けて、ようやく解決につながる素晴らしい記事を見つけた。
【WP】人気投稿プラグインの表示カスタマイズおぼえがき – イラ備忘録
この記事の中で解決することができたわけだが、該当箇所を抜粋し、改変する。
$popular_posts = new \WordPressPopularPosts\Query($args);
if ($popular_posts) {
foreach ($popular_posts->get_posts() as $popular_post) {
// $popular_post -> id;
}
}
wp_reset_postdata();
記事IDさえ取得できれば、あとはいかようにもカスタマイズできる。該当箇所全体で記述するとこんな感じ。この方法であれば、フィルターフックを使う必要はもうない。
if (function_exists('wpp_get_mostpopular')) {
$args = array (
'limit' => 15, // 記事を表示する最大件数
'range' => 'monthly', // 集計期間。 daily, weekly, monthly, all のいずれかを指定
'order_by' => 'views', // ソート順の対象。 views(閲覧数), comments(コメント数), avg(1日の平均)のいずれかを指定
'post_type' => 'post', // ポストタイプを指定。post, page, などを指定
);
//wpp_get_mostpopular($arg);
$popular_posts = new \WordPressPopularPosts\Query($args);
if ($popular_posts) {
foreach ($popular_posts->get_posts() as $popular_post) {
// $popular_post -> id;
}
}
wp_reset_postdata();
}
ふー、これで「よく読まれている記事」のリストを復活させることができたぁ。やれやれだぜ。