WordPress plugin that helps to serve content through REST routes and gives
customizability to developers through filters.
/wp-json/arha/v1/post
/wp-json/arha/v1/page
/wp-json/arha/v1/options
/wp-json/arha/v1/archive
/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
are supported and they work how the query is built for it in new WP_Query()
To exclude querying specific post types from post
– and archive
-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;
}
`
post
-route’s post before it’s served to client, use arha_routes/format_post
-filterfunction format_post($post) {
return $post;
}
`
page
-route’s post before it’s served to client, use arha_routes/format_page
-filterfunction format_page($page) {
return $page;
}
`
To format archive
-route’s posts before they are served to client, use arha_routes/format_archive_post
-filter
add_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, use arha_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 array
return $post_statuses;
}
`
After adding setting up these filters, request can include “post_status” parameter and it will be compared to $post_statuses array.
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
Arha Routes supports Polylang-plugin, which allows users to create content in multiple languages.
Activating Polylang changes how endpoints work:
lang
-param
/wp-json/arha/v1/archive?post_type=products&posts_per_page=10&paged=1&orderby=date&order=ASC&lang=en
page
-route doesn’t support language prefix in path
/zh/info
, use like this /wp-json/arha/v1/page?path=/info&lang=zh
/en/info/test
, use like this /wp-json/arha/v1/page?path=/info/test&lang=zh
options
-route passes lang
-param forward to arha_routes/format_options
-filteradd_filter('arha_routes/format_options', 'format_options', 10, 2);
function format_options($options, $lang) {
return $options;
}
In order to make these two plugins work together, you need to add extra plugin to WP installation.
https://searchwp.com/extensions/polylang-integration/