WordPress人気プラグイン Popular Postsプラグインなしで人気記事を表示させる方法

2022年6月14日

WordPressで人気記事を表示させるプラグインの定番といえば『WordPress Popular Posts
弊社複数運営しているWebメディアでも重宝するプラグインのため、インストールしております。

ただ、このプラグイン現時点(2022年6月14日現在)更新が5ヶ月とまっているプラグイン。
脆弱性などはありませんが、WPコアがバージョンアップされ続ける上で、半年以上アップデートされていないと動作表示など万が一、何かが起こる可能性も少なからずあります。

無理矢理このプラグインから変えましょう。というわけではなく、望ましいレイアウトが出ない。しっかりと保守管理を行いたい。というサイトの場合は以下コードをご確認ください。

Popular Postsプラグインなしで人気記事を表示させる方法

functions.phpにコード追加する

// 記事PV取得
function getPostViews($postID) {
  $count_key = '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カウント
function setPostViews($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);
  }
}
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);

single.phpにコード追加

「get_header()」記述以降の任意箇所に追加してください。

<?php
    // 記事のビュー数を更新(ログイン中・クローラーは除外)
    if (!is_user_logged_in() && !is_robots()) {
      setPostViews(get_the_ID());
    }
  ?>

sidebar.phpにコード追加

sidebar.phpではなくとも、表示をしたい場所に以下のコードを貼り付けしてください。

今回はサイドバーを例とするため、「sidebar.php」に追加します。

<div>
  <h4>よく読まれている記事</h4>
  <hr>
  <?php
    $args = array(
      'post_type' => 'post',
      'meta_key' => 'post_views_count',
      'orderby' => 'meta_value_num',
      'posts_per_page' => 5,
      'order'=>'DESC',
    );
    $the_view_query = new WP_Query( $args );
    if ($the_view_query->have_posts()):
      while($the_view_query->have_posts()): $the_view_query->the_post();
  ?>
      <!-- サムネイルの表示 -->
      <div>
        <ahref="<?php echo get_permalink(); ?>">
          <?php if ( has_post_thumbnail() ) { the_post_thumbnail( 'post-thumbnail'); } ?>
        </a>
      </div>

      <!-- タイトル表示 -->
      <div>
        <ahref="<?php the_permalink(); ?>"><?php the_title(); ?></a>
        <p><?php echo getPostViews($post->ID); ?></p>
      </div>

      <?php endwhile; ?>
    <?php endif; ?>
    <?php wp_reset_postdata(); ?>
  </div>

表示件数やレイアウト構成はCSSで調整ください。

他にも出力したい内容がある場合はコードを追加してください。

リビジョン株式会社ではWordPressのローカライズ化やスポット改修、WordPressに関わる全ての業務に精通しております。ご相談はお気軽にフォームよりご連絡ください。


Recent Entries

ゴールデンウィーク休業のお知らせ
口コミ対応も含め、予約やチャットが使えるGoogleビジネスプロフィール 特に飲食・美容・医療は積極的なご活用を
独立含む、Webサイト新規制作、Webサイトリニューアルをご検討している企業様、ご担当者様へ
【あるご質問】担当者が辞めてしまったのでスポットでのホームページやECサイト改修依頼は可能ですか?
WordPress 6.5「レジーナ」リリース!最新バージョンにアップデートを


CONTACT

Webサイトリニューアルから新規ホームページ制作・運営・保守まで、目的達成を実現いたします。
各種Webサイト・ECサイト制作、広告代行に関するご相談、ご質問などお気軽にお問合せ下さい。

Tel : 03-5324-2318 / Email : info@reinc.jp

各種お問合せはこちらから