[み]WordPressでプラグインなしで、PV数をもとに人気記事を表示する方法

久しぶりにWordPressのカスタマイズの小ネタを紹介します。

みはら.comでも、サイドバーに人気の記事を表示しています。
popular01
これは、popular Posts+というプラグインを使用し、表示しています。このプラグインは、けっこうカスタマイズできるんですが、カスタマイズの解説記事もそれほど多くなく、ノンプログラマなわたくしには、けっこうハードルが高いです。

ですので、今回紹介するプラグインを使わずに人気記事を表示する方法でノンプログラマでもカスタマイズしやすいようにしてみます。

Google先生に聞いてみたんですが、コメント数をもとに人気記事を表示する方法はたくさんあるんですが、PV数で人気記事を抽出する方法がなかったので、参考にしてみてください。

PV数で人気記事を表示する方法

ではさっそく。

function wpb_set_post_views($postID) {
    $count_key = 'wpb_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);
    }
}
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);

これを functions.php に貼りつけます。これで、PV数をカウントしてカスタムフィールドにいれておけます。

次に、

wpb_set_post_views(get_the_ID());

このコードをループ内に貼りつけます。

次に、

function wpb_track_post_views ($post_id) {
    if ( !is_single() ) return;
    if ( empty ( $post_id) ) {
        global $post;
        $post_id = $post->ID;    
    }
    wpb_set_post_views($post_id);
}
add_action( 'wp_head', 'wpb_track_post_views');

このコードを functions.php に貼りつけます。これで、記事が閲覧されるたびにカスタムフィールドの値が更新されます。

そして、次のコードを functions.php に追加してください。

function wpb_get_post_views($postID){
    $count_key = 'wpb_post_views_count';
    $count = get_post_meta($postID, $count_key, true);
    if($count==''){
        delete_post_meta($postID, $count_key);
        add_post_meta($postID, $count_key, '0');
        return "0 View";
    }
    return $count.' Views';
}

で、PV数を表示したいときには、表示したいところに、

wpb_get_post_views(get_the_ID());

を追加すると、PV数が表示されます。

もうちょいで完了です。PV数で記事をソートするには、次のコードを追加してください。

<?php
$popularpost = new WP_Query( array( 'posts_per_page' => 4, 'meta_key' => 'wpb_post_views_count', 'orderby' => 'meta_value_num', 'order' => 'DESC'  ) );
while ( $popularpost->have_posts() ) : $popularpost->the_post();

the_title();

endwhile;
?>

ここのコードをいろいろいじることで、タイトルだけでなく、アイキャッチ画像やら、記事の冒頭部分やら表示することができます。

参考にした記事

こちらの記事を参考にしました。というか、ほぼ(95%)そのまんまです。
How to Display Popular Posts by Views in WordPress without a Plugin

PV数を取得して人気記事を表示する方法です。英語が話せないわたくしでも、ある程度は理解できました。

シェアありがとうございます

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

commentYour Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

checkboxみはら.comはエックスサーバーです

PAGE TOP arrowup