Je voudrais créer une requête pour afficher les 6 meilleurs articles les plus lus au cours des deux derniers jours. Cependant, je souhaite inclure uniquement les publications créées au cours du dernier mois afin d'empêcher la diffusion d'anciennes histoires.
J'utilise les statistiques Jetpack et wordpress.com. J'ai donc créé cette requête pour les meilleurs messages, mais je ne suis pas sûr que ce soit la bonne approche.
$top_posts = stats_get_csv('postviews', 'period=month&days=2&limit=6')
Ma principale confusion concerne le paramètre de période de l'API stats_get_csv, ainsi que son utilisation et ses effets.
En cherchant à répondre à cette SO Question , je suis tombé par hasard sur celle-ci, ce qui m'a donné le dernier indice.
Je vais reproduire la partie pertinente:
Fonction get_stats_csv
/plugins/jetpack/modules/stats.php
La fonction
get_stats_csv
appellehttp://stats.wordpress.com/csv.php
. Si nous visitons cette adresse, nous obtenons cette réponse:
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.
Pour ce que j’ai compris de cette documentation, utiliser period=week&days=1&limit=-1'
renverra toutes les publications de la période1. Si nous utilisons days=2
, ce sera une période de2 semaines .
Une semaine semble être la période la plus courte. Vous devrez comparer les résultats de Jetpack avec votre requête interne de deux jours seulement et filtrer les résultats.
Prenez cette note de développeur sérieusement, il semble que je me suis cassé mon quota quotidien (espérons-le) pendant les tests. La fonction ne renvoie plus de résultats et empêche même mon code de s'exécuter ... Rien ne casse, mais ne s'exécute tout simplement pas.