web-dev-qa-db-ja.com

Jetpack - stats_get_csv期間パラメーター

過去2日間で最も読まれた上位6件の投稿を表示するクエリを作成したいと思います。ただし、先月に作成された投稿のみを含めて、古い記事が表示されないようにします。

私はJetpackとwordpress.comの統計を使用しているので、Top Postsに対してこのクエリを作成しましたが、それが正しいアプローチであるかどうかはわかりません。

$top_posts = stats_get_csv('postviews', 'period=month&days=2&limit=6')

私の主な混乱はstats_get_csv API期間パラメータと、それがどのように使用されているか/効果が何であるかです。

2
Steven Thomas

これに答えるために調査している間 SO質問 、これにつまずいた、それは私に最後のヒントを与えた。

関連部分を再現します。

関数get_stats_csv

/plugins/jetpack/modules/stats.php

関数get_stats_csvhttp://stats.wordpress.com/csv.phpを呼び出します。このアドレスにアクセスすると、次のような応答があります。

Error: api_key is a required parameter.

Required parameters: api_key, blog_id or blog_uri.
Optional parameters: table, post_id, end, days, limit, summarize.

Parameters:
api_key     String    A secret unique to your WordPress.com user account.
blog_id     Integer   The number that identifies your blog. 
                      Find it in other stats URLs.
blog_uri    String    The full URL to the root directory of your blog. 
                      Including the full path.
table       String    One of views, postviews, referrers, referrers_grouped, 
                      searchterms, clicks, videoplays.
post_id     Integer   For use with postviews table.
end         String    The last day of the desired time frame. 
                      Format is 'Y-m-d' (e.g. 2007-05-01) 
                      and default is UTC date.
days        Integer   The length of the desired time frame. 
                      Default is 30. "-1" means unlimited.
period      String    For use with views table and the 'days' parameter. 
                      The desired time period grouping. 'week' or 'month'
                      Use 'days' as the number of results to return 
                      (e.g. '&period=week&days=12' to return 12 weeks)
limit       Integer   The maximum number of records to return. 
                      Default is 100. "-1" means unlimited. 
                      If days is -1, limit is capped at 500.
summarize   Flag      If present, summarizes all matching records.
format      String    The format the data is returned in, 
                      'csv', 'xml' or 'json'. 
                      Default is 'csv'.

Non-working query example: 
?api_key=123456789abc&blog_id=155&table=referrers&days=30&limit=-1&summarize

Result format is csv with one row per line and column names in first row.

Strings containing double quotes, commas, or "\n" are enclosed in double-quotes. 
    Double-qoutes in strings are escaped by inserting another double-quote.
    Example: "pet food" recipe
    Becomes: """pet food"" recipe"

Developers, please cache the results for at least 180 seconds.

私がこのドキュメントを理解したために、period=week&days=1&limit=-1'を使用すると、1の期間からのすべての投稿が返されます。 days=2を使用する場合、それは2の期間になります。

一週間が最短期間のようです。 Jetpackの結果をたった2日の内部クエリと比較して結果をフィルタリングする必要があります。

テスト中に毎日(できれば)クォータを破ったように見えるので、開発者は真剣に注意してください。この関数は結果を返さなくなり、コードの実行を妨げることさえありません...何も壊れませんが、単に実行しないでください。

1
brasofilo