WordPressならwp_get_referer()
でリファラが取れるので、自サイト以外を保存・集計するようにすれば良いと思います。
カスタムフィールドでも出来ると思いますが、専用のDBテーブルを作った方がごちゃごちゃしなくて済むでしょう。
アクセス数をDBに記録すると、DB容量が肥大することになりますのであまりオススメしません。
Simple GA Rakingなど、Google Analyticsのデータを利用してみてはいかがでしょうか?
http://simple-ga-ranking.org/ja/
ドキュメントを見る限り、Google AnalyticsのAPIのsortフィルタなどを使えば逆順にすることもできそうかなと思います。
https://developers.google.com/analytics/devguides/reporting/core/v3/reference#sort
アクセス数をDBに記録すると、DB容量が肥大することになりますのであまりオススメしません。
その根拠は何ですか?
設計次第ではないですか?
外部サイトからのリファラをカウントして保存するだけで肥大しますか?
例
google 132
yahoo 95
msn 53
あと、Simple GA Rankingではないですか?
Simple GA Rakingなど、Google Analyticsのデータを利用してみてはいかがでしょうか?
アドバイスありがとうございます。
少し説明不足だったかもと思い追記致します。
記事のアクセス数じゃなく
他のサイトからのリファラのランキングを表示したいと考えています。
今回の「Simple GA Raking」は記事のアクセス数の統計を表示するものだと思うのですが
他のサイトからのリファラをアクセス順に並べる事も可能なのでしょうか?
wp_get_referer()
に関してはまだ勉強中でなんとも言えません。
これから少しずつ検索しながら時間をかけて調べていくつもりです。
他にも何か情報ありましたら引き続きよろしくお願いします。
設計次第でどうとでもなるのは確かですね。
アクセス集計系のプラグインは1PVごとにデータを保存するようなものもあり、
だいたい障害やパフォーマンスの低下に陥っているので意識して設計しないといけない箇所になるとは思います。
https://www.hazama-life.com/wordpress-popular-posts_analyzed_heavy_cause_aws-rds/
wp_get_referer();については、Codexの記事などをみてトライしてみてください。
-> 関数リファレンス/wp get referer
戻り値が文字列になっているので、それを処理して取り扱う形になると思います。
もし思っている値が取れない様子であれば、Google Analyticsのデータを利用できるSDK / APIもありますので、そちらを試してみるのも良いかと思います。
Analyticsであればリファラーもトラッキングしてくれていますし、おそらくデータを取ることは可能だと思います。
https://developers.google.com/analytics/devguides/reporting/core/v3/quickstart/service-php?hl=ja
https://www.tam-tam.co.jp/tipsnote/program/post9065.html
こんにちは
逆アクセスランキングを「過去X日間」など期間を限定して出したい場合(昔のもうないサイトのがいつまでもトップでも困る、直近のランキングも出したい場合など)、アクセスごとに日時を持ったレコードを作りたいですよね。
そうするとOkamotoさんのおっしゃるようにレコード数が膨大になるので、データベースをリファイリングするか、パーティショニングするか、何かデータの持ち方を変えるなどの工夫がいりそうです。
アクセスがいっぱいあればですが・・・私のサイトでは10年ぐらいは大丈夫な感じです。
かなり放置した状態でもうしわけございません。
いろいろ教えて頂いてはいるもののかなりハードルが高く
正直サッパリ分からない、ヒントすら見えてこない状態で放置している状態ですが
もう少し知識&時間が取れる時までこのままにしておきますがよろしくお願いします。
他にも参考になるサイトやサンプルコードなどありましたら
是非是非とも情報下さい。