WpOrg: Node.js Client
WordPress.org Client Library for Node.js
Installation
npm i wporg-api-client
Note: add --save
if you are using npm < 5.0.0
This library exposes methods for all the APIs listed here: https://codex.wordpress.org/WordPress.org_API
Examples
Fetch All Plugins List
const { getPluginsList } = require("wporg-api-client");
const fetchPluginsList = async () => {
let pluginsList = {};
try {
pluginsList = await getPluginsList();
console.log(pluginsList, "pluginsList");
} catch (error) {
console.log(error.message, "error");
}
};
fetchPluginsList();
Get Plugin Downloads Count
const { getPluginDownloads } = require("wporg-api-client")
const fetchPluginDownloads = async (plugin_slug) => {
let downloadsCount = 0;
try {
const apiResponse = await getPluginDownloads(plugin_slug);
downloadsCount = apiResponse.data
console.log(downloadsCount, "downloadsCount");
} catch (error) {
console.log(error.message, "error");
}
}
fetchPluginDownloads("contact-form-7")
Table of contents:
Note: Params marked with asterisk(*) are required.
Core
-
Available API versions: 1.0
getCoreTranslations(wp_version, api_version)
Note: wp_version starts from 4.0
getCoreTranslations('4.9.5')
-
Available API versions: 1.7
getCoreVersionInfo(wp_version, locale, api_version)
getCoreVersionInfo('4.0.1', 'eu')
-
Available API versions: 1.1
getCoreCreditDetails(wp_version, locale, api_version)
getCoreCreditDetails('4.0.1', 'eu')
-
Available API versions: 1.0
getCoreChecksums(wp_version*, locale, api_version)
getCoreChecksums('5.5.1', 'eu')
-
Available API versions: 1.1
getBrowserInfo(useragent*)
getBrowserInfo('Chrome/86.0')
-
Available API versions: 1.0
getCoreVersionStabilityInfo(wp_version, api_version)
getCoreVersionStabilityInfo() //returns all versions info getCoreVersionStabilityInfo('4.6.20') //returns specific version info
-
Available API versions: 1.0
getCoreStats(api_version)
getCoreStats()
Plugins
-
-
search(string): Textual search, using a free-form string
-
tag('string' | 'array'): Return themes with a specified tag or set of tags(array of strings)
-
author(string): WordPress.org username of the author, pass this filter to return plugins authored by them
-
page(number): page number default: 1
-
per_page(number): Plugins to show per page default: 24
-
browse(string): Predefined themes ordering. Possible values are
- popular: Plugins ordered by popularity
- featured: Set of featured plugins
- updated: Recently updated plugins
- new: Latest plugins
-
-
Available API versions: 1.1, 1.2
getPluginsList(filters, api_version)
getPluginsList() getPluginsList({ tag: ['photography', 'blue'], browse: 'popular', page: 1, per_page: 10, //... other filters })
-
Available API versions: 1.1, 1.2
filterPluginsBy(filter_key*, filter_value*, page, per_page, api_version)
filterPluginsBy('search', 'buddypress', 1, 5) filterPluginsBy('tag', ['popup', 'slideshow']) filterPluginsBy('author', 'wordpressdotorg', 2, 3) filterPluginsBy('browse', 'popular')
-
Available API versions: 1.1, 1.2
getPluginInfo(plugin_slug, api_version)
getPluginInfo('wordpress-seo');
-
Available API versions: 1.1, 1.2
getPluginHotTagsList(api_version)
Note: tags_count is not implemented in the original api yet
getPluginHotTagsList()
-
Available API versions: 1.0
getPluginTranslations(slug, plugin_version, api_version)
getPluginTranslations('classic-editor', '1.5');
-
Available API versions: 1.0
getPluginDownloads(plugin_slug*, limit, api_version)
limit: Downloads in last {limit} days
getPluginDownloads('classic-editor', 7)
-
getPluginStats(plugin_slug*, api_version)
getPluginStats('classic-editor')
Themes
-
-
search(string): Textual search, using a free-form string
-
tag('string' | 'array'): Return themes with a specified tag or set of tags(array of strings)
-
theme(string): Slug of a specific theme to return
-
author(string): WordPress.org username of the author, pass this filter to return themes authored by them
-
page(number): page number default: 1
-
per_page(number): Themes to show per page default: 24
-
browse(string): Predefined themes ordering. Possible values are
- popular: Themes ordered by popularity
- featured: Set of featured themes
- updated: Recently updated themes
- new: Latest themes
-
-
Available API versions: 1.1, 1.2
getThemesList(filters, api_version)
getThemesList() getThemesList({ tag: ['photography', 'blue'], browse: 'popular', page: 1, per_page: 10, //... other filters })
-
Available API versions: 1.1, 1.2
filterThemesBy(filter_key*, filter_value*, page, per_page, api_version)
filterThemesBy('search', 'grid', 1, 15) filterThemesBy('tag', ['photography', 'blue']) filterThemesBy('theme', 'gridmag') filterThemesBy('author', 'wordpressdotorg', 2, 3) filterThemesBy('browse', 'popular')
-
Available API versions: 1.1, 1.2
getThemeInfo(theme_slug, api_version)
getThemeInfo('simple-grid')
-
Available API versions: 1.1, 1.2
getPopularThemeTags(tags_count, api_version)
getPopularThemeTags() getPopularThemeTags(5)
-
Available API versions: 1.0
getThemeTranslations(theme_slug*, theme_version, api_version)
getThemeTranslations('grocery-store', '1.0.2')
Events
-
-
Main Filters
-
location(string):
-
latitude(number | string) and longitude(number | string)
-
ip(string)
-
country(string): Country name
Filters To Be Used In Conjunction With Others
-
timezone(string)
-
number(number): No of events to show
-
locale(string)
getEventDetails(params, api_version)
getEventDetails({ country: 'IT' }); getEventDetails({ ip: '136.0.16.1' }) getEventDetails({ latitude: '41.900001525879' longitude: '12.479999542236' }) getEventDetails({ location: 'Australia' }) getEventDetails({ number:5, location:'Australia' })
-
-
Others
-
Available API versions: 1.0
getStats(type, api_version)
getStats('php') getStats('mysql') getStats('wordpress')
-
Available API versions: 1.1
generateSecretKey(api_version)
generateSecretKey()
-
Available API version: 1.1
getPopularImportPlugins(api_version)
getPopularImportPlugins()