Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
#Wordpress Stats
#Wordpress Stats API docs (from
#You can get a copy of your API key (required) from Akismet:
#Login with you Wordpress account:
#Resend API key:
#Required parameters: api_key, blog_id or blog_uri.
#Optional parameters: table, post_id, end, days, limit, summarize.
#api_key String A secret unique to your 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'.
#NOTE: some of the report calls I tried didn't seem to work properly?
#Need to build up a list of tested calls to the API that actually do what you think they should?
wordpress.getstats.demo=function(apikey, blogurl, table='postviews', end=Sys.Date(), days='12', period='week', limit='', summarise=''){
#default parameters gets back last 12 weeks of postviews aggregated by week
'&',summarise, #set this to 'summarise=T' if required
#Martin's post notes that JSON appears to work better than CSV
#May be worth doing a JSON parsing version?
#Use the URL of a Wordpress blog associated with the same account as the API key
getDomain=function(url) str_match(url, "^http[s]?://([^/]*)/.*?")[, 2]
#We can pull out the domains clicks were sent to or referrals came from
#Scruffy bar chart - is there a way of doing this sorted chart using geom_bar? How would we reorder x?$domain))
ggplot(c)+geom_bar(aes(x=reorder(Var1,Freq),y=Freq),stat='identity')+theme( axis.text.x=element_text(angle=-90))$domain))
ggplot(c)+geom_bar(aes(x=reorder(Var1,Freq),y=Freq),stat='identity')+theme( axis.text.x=element_text(angle=-90))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment