WordPressのカスタムフィールド値で投稿記事をソートし、閲覧数順に一覧表示する方法

  • 16689
    views
  • このエントリーをはてなブックマークに追加
  • follow us in feedly

WordPressの記事を「特定の条件で○件出力する」方法は色々ありますが、今回はカスタムフィールドの値で記事を○件、特定の条件順に表示させようと思います。

先のブログ記事「WP-PostViews」プラグインで記事を閲覧数順に指定件数表示する方法 では、WP-PostViews プラグインを利用して記事の閲覧数(Views数)の多い記事をソートする方法を紹介させていただきましたが、これはカスタムフィールドの値を取得する方法でも代用可能ですので、前回の記事同様、WP-PostViews プラグインを使って人気記事を表示させようと思います。

WP-PostViews のインストール

WordPress管理画面のプラグイン新規追加より WP-PostViews を検索するか、以下よりプラグインファイルをダウンロードします。

WP-PostViews プラグインは、管理画面上で記事の閲覧数を出力してくれるプラグインなのですが、インストールして有効化すると記事投稿画面のカスタムフィールドに「views」の値が自動的に入ってきますので、今回やりたい「Views の値でソート」の処理ができるようになります。
WordPressのカスタムフィールド値で投稿記事をソートし、閲覧数順に一覧表示する方法

カスタムフィールドの値でソートする

ここからがテンプレートファイルに記述するPHP の話になりますが、まずはざっくりソースコードを紹介します。
<?php
query_posts('posts_per_page=10&meta_key=views&orderby=meta_value_num&order=DESC');
?>

query_posts() の引数は以下の通りです。

posts_per_page=10

記事を10件出力しています。

meta_key=views

カスタムフィールドの「views」を指定します。

meta_value_num

カスタムフィールドの値を「数値」として扱います。
テンプレートタグ/query posts の中にも掲載されれいますが、meta_value_num でカスタムフィールドの値を「数値」として扱うことができるようになります。

order=DESC

降順」でソートという感じです。
※ちなみに、降順は「DESC」ですが、昇順は「ASC」です。


上記組み合わせにより、カスタムフィールドのViews の数値が高い順(閲覧数が高い順)に記事をソートすることができるようになります。


今回は分かりやすいので WP-PostViews プラグインによる「Views」の値を利用しましたが、カスタムフィールドに入っている値を使って、他にも応用できると思います。

  • 16689
    views
  • このエントリーをはてなブックマークに追加
  • follow us in feedly

この投稿と関連する記事一覧

この記事に関するコメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください