Maelezo
WordPress plugin that helps to serve content through REST routes and gives
customizability to developers through filters.
Available Routes
/wp-json/arha/v1/post
/wp-json/arha/v1/page
/wp-json/arha/v1/options
/wp-json/arha/v1/archive
Example queries
/wp-json/arha/v1/post?post_type=POST_TYPE&slug=SLUG
/wp-json/arha/v1/page?path=PATH
/wp-json/arha/v1/options
/wp-json/arha/v1/archive?post_type=POST_TYPE&posts_per_page=POSTS_PER_PAGE&paged=PAGED&orderby=ORDERBY&order=ORDER
tax_query and meta_query in archive-route
tax_query
andmeta_query
are supported and they work how the query is built for it innew WP_Query()
- both needs their values to bes passed in as stringified json
Multiple post_types in archive-route
- To pass multiple post_types in archive-route, use syntax that lets PHP read GET-param as an array. https://stackoverflow.com/a/9547490
Filters
-
To exclude querying specific post types from
post
– andarchive
-routes, you
can use following filters:`
add_filter(‘arha_routes/archive_excluded_post_types’, ‘exclude_post_types’);
add_filter(‘arha_routes/post_excluded_post_types’, ‘exclude_post_types’);
function exclude_post_types($excluded_post_types) {
$excluded_post_types = [‘post’];
return $excluded_post_types;
}
`
- To format
post
-route’s post before it’s served to client, usearha_routes/format_post
-filter
`
add_filter(‘arha_routes/format_post’, ‘format_post’);
function format_post($post) {
return $post;
}
`
- To format
page
-route’s post before it’s served to client, usearha_routes/format_page
-filter
`
add_filter(‘arha_routes/format_page’, ‘format_page’);
function format_page($page) {
return $page;
}
`
-
To format
archive
-route’s posts before they are served to client, usearha_routes/format_archive_post
-filteradd_filter('arha_routes/format_archive_post', 'format_archive_post');
function format_archive_post($post) {
return $post;
} -
options
-route returns empty result by default. To add content to it, usearha_routes/format_options
-filter
`
add_filter(‘arha_routes/format_options’, ‘format_options’);
function format_options($options) {
return $options;
}
`
-
By default Arha Routes returns only published content with post-, page- and archive-route, this can be modified by adding following filters.
`
// for archive route
add_filter(‘arha_routes/allowed_post_statuses_archive’, ‘allowed_post_statuses’);
// for post route
add_filter(‘arha_routes/allowed_post_statuses_post’, ‘allowed_post_statuses’);
// for page route
add_filter(‘arha_routes/allowed_post_statuses_page’, ‘allowed_post_statuses’);
function allowed_post_statuses($post_statuses) {
// … change post_statuses arrayreturn $post_statuses;
}
`
After adding setting up these filters, request can include “post_status” parameter and it will be compared to $post_statuses array.
SearchWP
Arha Routes supports SearchWP-plugin, which lets WP users to make keyword search engine for their content.
Activating SearchWP-plugin adds optional keyword-search functionality to archive
-route. This is done by adding s=KEYWORD
to the route
– Example: /wp-json/arha/v1/archive?post_type=products&posts_per_page=10&paged=1&orderby=date&order=ASC&s=monitor
Polylang
Arha Routes supports Polylang-plugin, which allows users to create content in multiple languages.
Activating Polylang changes how endpoints work:
- All routes require additional
lang
-param- Example:
/wp-json/arha/v1/archive?post_type=products&posts_per_page=10&paged=1&orderby=date&order=ASC&lang=en
- Example:
page
-route doesn’t support language prefix in path- Example: Permalink
/zh/info
, use like this/wp-json/arha/v1/page?path=/info&lang=zh
- Example: Permalink
/en/info/test
, use like this/wp-json/arha/v1/page?path=/info/test&lang=zh
- Example: Permalink
options
-route passeslang
-param forward toarha_routes/format_options
-filter
add_filter('arha_routes/format_options', 'format_options', 10, 2);
function format_options($options, $lang) {
return $options;
}
Polylang + SearchWP
In order to make these two plugins work together, you need to add extra plugin to WP installation.
https://searchwp.com/extensions/polylang-integration/
Reviews
Hakuna hakiki za programu-jalizi hii.
Wachangiaji & Wasanidi
“Arha Routes” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Arha Routes” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.