PHP code example of aucor / wp_query-route-to-rest-api
1. Go to this page and download the library: Download aucor/wp_query-route-to-rest-api library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
aucor / wp_query-route-to-rest-api example snippets
$args = array(
'post_type' => 'post',
'orderby' => 'title',
'order' => 'ASC'
);
$query_str = build_query( $args );
$response = wp_remote_get( 'https://your-site.local/wp-json/wp_query/args/?' . $query_str );
// Get array of "post objects"
$posts = json_decode( wp_remote_retrieve_body( $response ) );
$args = array(
'post_type' => 'post',
'tax_query' => array(
array(
'taxonomy' => 'post_tag',
'field' => 'slug',
'terms' => array( 'wordpress' ),
),
array(
'taxonomy' => 'post_tag',
'field' => 'slug',
'terms' => array( 'woocommerce' ),
),
),
);
$args = array(
'post_type' => 'post',
'tax_query' => array(
'relation' => 'OR',
array(
'taxonomy' => 'post_tag',
'field' => 'slug',
'terms' => array( 'wordpress' ),
),
array(
'taxonomy' => 'post_tag',
'field' => 'slug',
'terms' => array( 'woocommerce' ),
),
),
);
// Get the main WP_Query for archive, term, single-post etc
global $wp_query;
$default_args = array(
'post_status' => 'publish',
'posts_per_page' => 10,
'has_password' => false
);
function my_allowed_args($args) {
$args[] = 'post_status';
return $args;
}
add_filter( 'wp_query_route_to_rest_api_allowed_args', 'my_allowed_args' );
function my_default_args($args) {
$args['posts_per_page'] = 5;
return $args;
}
add_filter( 'wp_query_route_to_rest_api_default_args', 'my_default_args' );
function my_allowed_post_types($post_types) {
$post_types[] = 'projects';
return $post_types;
}
add_filter( 'wp_query_route_to_rest_api_allowed_post_types', 'my_allowed_post_types' );
function my_allowed_post_status($post_status) {
$post_status[] = 'draft';
return $post_status;
}
add_filter( 'wp_query_route_to_rest_api_allowed_post_status', 'my_allowed_post_status' );
function my_post_is_allowed($is_allowed, $post) {
if($post->ID == 123) {
$is_allowed = false;
}
return $is_allowed;
}
add_filter( 'wp_query_route_to_rest_api_post_is_allowed', 'my_post_is_allowed', 10, 2 );
function my_arg_value($value, $key, $args) {
if($key == 'posts_per_page' && $value > 10) {
$value = 10;
}
return $value;
}
add_filter( 'wp_query_route_to_rest_api_arg_value', 'my_arg_value', 10, 3 );
function my_permission_check($is_allowed, $request) {
return true;
}
add_filter( 'wp_query_route_to_rest_api_permissions_check', 'my_permission_check', 10, 2 );
function my_max_posts_per_page($max) {
return 100; // Default 50
}
add_filter( 'wp_query_route_to_rest_api_max_posts_per_page', 'my_max_posts_per_page' );
function my_default_data($data) {
$data = array(
'html' => false,
'messages' => array(
'empty' => esc_html__( 'No results found.', 'text-domain' ),
),
);
return $data;
}
add_filter( 'wp_query_route_to_rest_api_default_data', 'my_default_data' );
function my_default_data($data, $wp_query, $args) {
// Do something with the data.
return $data;
}
add_filter( 'wp_query_route_to_rest_api_after_loop_data', 'my_default_data', 10, 3 );
add_filter( 'wp_query_route_to_rest_api_update_post_type_meta', '__return_false' );
add_filter( 'wp_query_route_to_rest_api_use_parent_class', '__return_false' );
function my_before_query($args) {
// do whatever
}
add_action( 'wp_query_route_to_rest_api_before_query', 'my_before_query' );
function my_after_query($wp_query) {
// do whatever
}
add_action( 'wp_query_route_to_rest_api_after_query', 'my_after_query' );
js
var query_str = jQuery.param( args );