【WordPress】プラグインなしで人気記事(ランキング)を載せる
- 2019.3.20
- WordPress


人気ランキングー

見ちゃいますよねー
1. プラグインを使えば簡単ですが
ワードプレスでランキングを載せるならプラグインを使うほうが便利だと思います。
ただ少し重くなったりします。そう、プラグインを入れすぎると重くなるわけです。(あ、あたりまえですね。)
このサイトはほぼほぼプラグインなしで作っています。ランキングもプラグインなしです。
意外と簡単だったりしますが、カスタム投稿の場合は?とかなんだかんだと時間がかかってしまったので備忘録掲載です。何か参考になれば嬉しいです。
2.『functions.php』に追記する
【今回のテーマ】
- ユーザーからのアクセスのみをカウントする。
- クローラーからのアクセスをカウントしない。
- ログイン中のアクセスをカウントしない。
記事のアクセス数を計測するために追記。
カスタムフィールドに「post_views_count」を追加する。
アクセスがあったら値が+1。
//記事のアクセス数を計測するために追記 function set_post_views($postID) { $count_key = 'post_views_count'; $count = get_post_meta($postID, $count_key, true); if($count==''){ $count = 0; delete_post_meta($postID, $count_key); add_post_meta($postID, $count_key, '0'); }else{ $count++; update_post_meta($postID, $count_key, $count); } }
クローラーのアクセスを判別するために追記。
なんでもカウントOKってことなら以下は不要。
クローラー、いっぱいあるので必要なものだけでOK。
//クローラーのアクセスを判別するために追記 function is_bot() { $ua = $_SERVER['HTTP_USER_AGENT']; $bot = array( 'Googlebot', 'Yahoo! Slurp', 'Mediapartners-Google', 'msnbot', 'bingbot', 'MJ12bot', 'Ezooms', 'pirst; MSIE 8.0;', 'Google Web Preview', 'ia_archiver', 'Sogou web spider', 'Googlebot-Mobile', 'AhrefsBot', 'YandexBot', 'Purebot', 'Baiduspider', 'UnwindFetchor', 'TweetmemeBot', 'MetaURI', 'PaperLiBot', 'Showyoubot', 'JS-Kit', 'PostRank', 'Crowsnest', 'PycURL', 'bitlybot', 'Hatena', 'facebookexternalhit', 'NINJA bot', 'YahooCacheSystem', 'NHN Corp.', 'Steeler', 'DoCoMo', ); foreach( $bot as $bot ) { if (stripos( $ua, $bot ) !== false){ return true; } } return false; }
3.『single.php』に追記する
追記する場所はsingle.php内ならどこでもOK。
「!is_user_logged_in()」→ログイン中以外
「!is_bot()」→クローラー以外
<?php if( !is_user_logged_in() && !is_bot() ) { set_post_views( get_the_ID() ); } ?>
4.人気記事(ランキング)を表示する
- 5件表示する。
- カスタム投稿の場合
<ol> <?php $popular = new WP_Query(array( 'posts_per_page' => 5, 'meta_key' => 'post_views_count',//投稿数をカウントするカスタムフィールド名 'orderby' => 'meta_value_num', 'order' => 'DESC', 'post_type' => array('カスタム投稿名','カスタム投稿名','カスタム投稿名'), 'post_status' => 'publish', 'caller_get_posts' => 1, 'offset' => 0, )); while ($popular->have_posts()) : $popular->the_post(); ?> <li> <div class="popular_thumbnail"> <a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>"> <?php if ( has_post_thumbnail() ): ?> <?php echo get_the_post_thumbnail(); ?> <?php else: ?> No image <?php endif; ?> </a> </div> <div class="popular_entrytitle"> <a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a> </div> </li> <?php endwhile; wp_reset_postdata(); ?> </ol>
注意点
- 『functins.php』と『single.php』の関数名を同じにすること。
さいごに

角のパン屋さんのチーズパンが一番ですー

焼きたてだったらもっと一番ですー
おすすめ
かんれん
- web / 2019.2.20
- 【CSS】IE11だけ表示崩れしたときのCSSハック
- web / 2020.11.1
- 【CSS】使える背景パターン、実装サンプル25選(コピペで簡単です)
- web / 2019.4.16
- 【CSS】ハンバーガーメニュー実装サンプル集(クリック時のエフェクトも集めました)
Googleさんのおすすめ
人気記事
- web / 2019.4.16
- 【CSS】ハンバーガーメニュー実装サンプル集(クリック時のエフェクトも集めました)
- web / 2022.2.1
- 【jQuery】アコーディオン実装サンプル10選
- web / 2019.9.27
- 【jQuery】スライダープラグイン「slick」実装サンプル集
Googleさんのおすすめ
デザインの記事
- 2023.10.02New
- Aubloom オーブルーム – RAWSILK SHAMPOO ローシルクシャンプー
- 国内、海外のウェブデザイン、パソコン・タブレット・スマートフォンでも見やすいレスポンシブ対応の「あ、いいな」と思うウェブデザインを集めています。
- デザインのこと – Web design gallery
- 2022.06.15
- ちょっと思い出しただけ
- (C)2022『ちょっと思い出しただけ』製作委員会 もくじ 『ちょっと思い出しただけ』 あ…
- いつかのこと – 無印良品の家と暮らす
- 2023.07.31
- 【Google Chrome】ショートカットキーまとめ(Windows or Mac)
- クロームでF5(更新)ってどうするんでしたっけ? あー、Macですか?わかるわかる、な…
- 125naroom / デザインするところ(会社)です。