閲覧数の表示順序

閲覧数: 35(0)

このサイトでは、閲覧数を表示するプラグインである「POST VIEWS COUNTER」を少し改修(詳細は過去記事を参照)して使っている。記事や記事一覧では、総閲覧数(今週の閲覧数)形式で表示している。ウィジェットでは「今週のトップ5」をランキング形式で表示するようになっている。その際の表示順序は、当然ながらその週の閲覧数順である。週単位で見た場合、閲覧数が同数となる場合が結構あり、その際は投稿ID順となっていた。ずっと時系列に投稿を続けている場合には問題にならないのだが、過去記事を後になって投稿する場合、投稿ID順になっていると投稿日は古いのに閲覧数が同数の場合、先に表示される。出来れば投稿日順に表示して欲しいところである。些細なことなのだが、気になると解消したくなるのは貧乏性かもしれない。

    function pvc_get_most_viewed_posts( $args = [] ) {
        $args = array_merge(
        ...
        // force to use post views as order
        $args['orderby'] = 'post_views';

        return apply_filters( 'pvc_get_most_viewed_posts', get_posts( $args ), $args );
    }

オリジナルのコードを確認すると「[‘orderby’] = ‘post_views’」と指定されている。この書き方だと、閲覧数が同数の場合には、既定値である投稿ID(post_id)順での表示になるようだ。ここを複数指定かつ投稿日とすれば問題は解決しそうである。複数指定のやり方を調べてみると、配列にすれば実現可能であることが分かった。早速下のように修正してみる。

    function pvc_get_most_viewed_posts( $args = [] ) {
        $args = array_merge(
        ...
        // force to use post views as order
        //$args['orderby'] = 'post_views';
        $args['orderby'] = array( 'post_views'=>'DESC', 'post_date'=>'DESC');
 
        return apply_filters( 'pvc_get_most_viewed_posts', get_posts( $args ), $args );
    }

このように、明示的に「閲覧数、投稿日の降順」に表示するように指定すれば、同数の場合でも投稿日順に表示するように修正できた。小さなことでも気になると解消したくなるのは性分として仕方ないのだが、個人的には誰にも理解されなくても満足感は高い(笑)

カテゴリーIT閑話, 公開タグ, , ,
閃きは大事だw

このサイトは、あくまでもCMSであるWordPressの構築やクラウドであるAWSの運用ノウハウ取得  続きを読む

パンくずリスト詳細
blank

テーマの「マイナーチェンジ」に伴って「パンくずリスト」の仕様を若干変更しました。一つ前のテーマではパ  続きを読む

dotProject
blank

オープンソースのプロジェクト管理ツールである「dotProject」便利なツールで使い込んでいますが  続きを読む

テスト系
blank

AWSで稼動している本番系の環境は、Amazon Linuxという専用のOSです。一番近いディストリ  続きを読む

久しぶりのITネタ
blank

最近はずっと旅日記風なネタに始終しておりましたが、ここに来て久しぶりにITネタ行ってみたいと思います  続きを読む

Sudachiプラグイン
blank

このサイトで最も力を入れている設定が「検索」です。初稿である「検索に悩む」から既に8年弱が経過し、当  続きを読む

スポンサーリンク

コメントを残す

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