WordPressで人気の記事を表示するプラグインは「WordPress Popular Posts」が有名ですが、カスタム投稿タイプに正式に対応しておらず、カスタム投稿タイプの人気記事を表示したいときになかなか不便です。いろいろ探してみたところ、「WP Most Popular」というプラグインを見つけました。
WP Most Popular
WP Most Popularの特徴など。
- ウィジェットはシンプルな機能であまり使えないけど、関数を書くと捗る。
- 関数はget_posts関数的な感じで使用できるので、出力内容も自由自在。
- 引数でカスタム投稿タイプを指定できる。
- 件数指定、期間指定(all_time, monthly, weekly, daily)がもちろんできる。
使用例
echo '<div class="widget-container popular-posts"> <dl> <dt>最近1ヶ月の人気の記事</dt><dd><ul>'; $posts = wmp_get_popular( array( 'limit' => 5, 'post_type' => 'post', 'range' => 'monthly' ) ); global $post; if ( count( $posts ) > 0 ): foreach ( $posts as $post ): setup_postdata( $post ); ?> <li><a href="<?php the_permalink() ?>" title="<?php echo esc_attr(get_the_title() ? get_the_title() : get_the_ID()); ?>"><?php if ( get_the_title() ) the_title(); else the_ID(); ?></a></li> <?php endforeach; endif; wp_reset_postdata(); echo '</ul></dd></dl></div>';
改善点
すごく便利なWP Most Popularですが、ちょっと残念な点として、せっかくポストタイプが指定できるのに複数指定ができません。そこで下記のように配列でポストタイプを複数指定できるように修正してみました。
$posts = wmp_get_popular( array( 'limit' => 5, 'post_type' => array( 'post', 'custom1', 'custom2' ), 'range' => 'monthly' ) );
ついでに、GPL2ライセンスだったので修正版を公開。
GitHubでPull Requestしてね的なメッセージがreadme.txtに書いてありましたので、作者様になれない英語でPull Requestしてみました。マージしてくれると良いのですが…。