ワードプレスで閲覧回数の多い投稿をプラグインなしで表示

カスタムフィールド」を利用することにより、プラグインを使用せず、そして、簡単に、閲覧回数が多い(人気の高い)投稿を、表示させることが可能ですので、その方法を記載しました。

カスタムフィールドとは、閲覧回数のような、ちょっとしたデータを、DBに保存してくれる便利な機能です。

動作概要

  1. 投稿が表示される度に、テンプレートファイル single.php に埋め込んだ get_post_meta 関数で、「カスタムフィールド」(当サイトでは<circulation>という名前にしています。)の値を取得。
  2. update_post_meta 関数で、その値を、+1 した値で上書き。
  3. 閲覧回数の多い投稿を抽出し、任意の場所に表示させる。

閲覧回数の取得方法

下の構文を、single.php のループ中( while ( have_posts() ) : the_post() の下あたりに。)に入れ込むだけ。

$circulation = 0;
$circulation = get_post_meta(get_the_ID(), 'circulation', 'true');
$circulation += 1;

update_post_meta( $post->ID, 'circulation', $circulation );

上記構文導入後、一度でも投稿が表示されれば、管理画面の各投稿編集画面上カスタムフィールド欄に、設定したカスタムフィールドの名前と値(その投稿の表示(閲覧)回数)が表示されます。

custom-field-img
  • 管理画面上で、マニュアルで値(投稿表示回数)を変更できます。
  • 管理画面上で、カスタムフィールドを削除した場合、その後、その投稿が閲覧された場合、新たに、同じ名前のカスタムフィールドが自動で作成され、値が新たに 1 からスタートします。

閲覧回数を表示する方法

  1. 投稿ページの下部に表示させたい場合、次のように、wp-query 関数を利用して、表示する為のループを形成します。
  2. この構文を、例えば、single.php コメント部分の上に入れ込みます。
$args = array(
  'post_type' => 'post',             // 投稿のみに限定
  'meta_key'   => 'circulation',     // カスタムフィールド名前「circulation」を選択し
  'orderby'    => 'meta_value_num',  // カスタムフィールド値が多きいものから並び変える
  'posts_per_page' => 3,             // 閲覧回数上位3投稿を選択
);

// The Query
$the_query = new WP_Query( $args );

// The Loop
if ( $the_query->have_posts() ) {
  echo '<ul>';
    while ( $the_query->have_posts() ) {
      $the_query->the_post();
      echo '<li>' . get_the_title() . '</li>';
    }
  echo '</ul>';
} else {
  // no posts found
}
/* Restore original Post Data */
wp_reset_postdata();
備考
  • 表示例の場合は、リンクなしの投稿のタイトルのみを表示しています。
  • リンク形成、リストの飾り付けなどは、都度行ってください。

コメントを残す

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