【WordPress】プラグインを使わずに人気記事の一覧を表示させる方法

 
 

こんにちは、元調剤薬局の薬剤師、今は福井県でフリーのホームページ制作をやっている@ジョウです。

今回の記事は、備忘録として、『WordPressでプラグインを使わないで人気記事の一覧を表示させる方法』について整理しておこうと思います。

人気記事の一覧を表示させるプラグインは、『WordPress Popular Posts』が超有名ですが、なんでもかんでもプラグインに頼ってしまうのもよろしくないので、コーディングします。

スポンサーリンク

コピペで人気記事の一覧を実装する

以下のコードを使えば、人気記事の一覧が表示されます。

『functions.php』

single.php

人気記事の一覧を表示させたいページ

ここからそれぞれのコードを簡単に説明していきます。興味ある方はご覧ください。

全体の流れ

初心者でもわかりやすいように、まず全体のコーディングの流れを整理します。

  1. 各記事が表示されたとき、PVをカウントするための関数を作る(functions.php)
  2. 上記関数を記事に入れる(single.php)
  3. 人気記事の一覧を表示させたいページに出力する

ややこしくなるので、ここでは、PV数の表示はしません。表示する方法は、後述してあります。

1.各記事が表示されたとき、PVをカウントするための関数を作る(functions.php)

PVをカウントするための関数を作ります。関数を作るためのコードを書くファイルは、functions.phpです。

『get_post_meta()』は、カスタムフィールドの値を取り出すための関数です。第一引数は、投稿記事のID、第二引数はキーを入力し、第三引数をtrueとすると、文字列を取り出します。

ここで、get_post_metaで取り出しているのは、PV数($count)です。ifで条件分岐して、PV数がまだない場合、0を設定し、add_post_metaでカスタムフィールドをセットしています。

add_post_metaの前の、delete_post_metaは念のためにカスタム情報を消しているだけです。

条件分岐のelse以降は、$countがあれば、その数字にプラス1をして、update_post_metaでカスタムフィールドの値を更新しています。

2.上記関数を記事に入れる(single.php)

1で作ったPV数をカウントする関数を投稿記事に入れます。投稿記事なので、おそらくsingle.phpファイルに書くことになります。

is_user_logged_in()は、ログインしているかどうかを意味します。

is_robotts()は、クローラーかどうかを意味します。

今回、PV数のカウントでは、管理人・クローラーを除外しています。

get_the_ID()は、現在の投稿のIDを取得します。

3.人気記事の一覧を表示させたいページに出力する

人気記事の一覧を表示させたいページに以下のようなコードを書いていきます。

meta_keyで設定しているのは、1で設定したカスタムフィールドのキー、『post_views_count』です。

‘orderby’ => ‘meta_value_num’としないと、ちゃんと数字の大きい順に並んでくれません。

人気記事の一覧にPV数を表示させたいならさらに関数を作成

上記までのコードで、人気記事の一覧を表示することはできますが、PV数までは表示されていません。

PV数も表示させたい場合は、さらに関数を作成しましょう。

functions.phpで関数を作成します。

カスタムフィールドのキー、post_views_countにPV数が設定されているのでそれを取り出すだけでいいわけです。

取り出す場合、まだ値が設定されていないかもしれないのでそれをifで条件分岐します。

人気記事の一覧をPV数付きで表示させたいページに出力する

まとめ

以上です。今回のコードは、こちらの記事を参考にしました。

かなりわかりやすいので、このページの説明でわからないところがあれば、読んでみてください。

スポンサーリンク

おすすめ記事

フォローする