We'll create fresh WordPress site with Arha Routes installed. You have 20 minutes to test the plugin after that site we'll be deleted.
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/