it-swarm.com.de

Jetpack - stats_get_csv Periodenparameter

Ich möchte eine Abfrage erstellen, um die sechs meistgelesenen Beiträge der letzten zwei Tage anzuzeigen. Ich möchte jedoch nur Posts einbeziehen, die im letzten Monat erstellt wurden, um zu verhindern, dass ältere Storys angezeigt werden.

Ich verwende Jetpack- und wordpress.com-Statistiken, daher habe ich diese Abfrage für Top-Posts erstellt, bin mir jedoch nicht sicher, ob dies der richtige Ansatz ist

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

Ich verwechsle hauptsächlich den Parameter stats_get_csv API period und wie er verwendet wird bzw. welche Auswirkungen dies hat.

2
Steven Thomas

Als ich nachforschte, um diese SO-Frage zu beantworten, stieß ich auf diese, die mir den letzten Hinweis gab.

Ich werde den relevanten Teil reproduzieren:

Funktion get_stats_csv

/plugins/jetpack/modules/stats.php

Die Funktion get_stats_csv ruft http://stats.wordpress.com/csv.php auf. Wenn wir diese Adresse besuchen, erhalten wir folgende Antwort:

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.

Soweit ich diese Dokumentation verstanden habe, werden mit period=week&days=1&limit=-1' alle Posts von 1 Woche zurückgegeben. Wenn wir days=2 verwenden, beträgt der Zeitraum 2 Wochen .

Eine Woche scheint der kürzeste Zeitraum zu sein. Sie müssten die Jetpack-Ergebnisse mit Ihrer internen Abfrage von nur zwei Tagen vergleichen und die Ergebnisse filtern.

Nehmen Sie diese Anmerkung des Entwicklers ernst , da es so aussieht, als hätte ich meine tägliche (hoffentlich) Quote beim Testen gebrochen. Die Funktion gibt keine Ergebnisse mehr zurück und verhindert sogar, dass mein Code ausgeführt wird ... Es bricht nichts, aber es wird einfach nicht ausgeführt.

1
brasofilo