wordpress json
function create_product_changes_json() {
define("PRODUCT_CHANGES_PAGE", "product_changes_json");
add_rewrite_rule(PRODUCT_CHANGES_PAGE . '/$', 'index.php?' . PRODUCT_CHANGES_PAGE, 'top');
add_filter('query_vars', function($query_vars){
$query_vars[] = PRODUCT_CHANGES_PAGE;
$query_vars[] = "page";
return $query_vars;
});
add_action('parse_request', function($wp){
if(array_key_exists(PRODUCT_CHANGES_PAGE, $wp->query_vars)){
$valuesArray = $wp->query_vars;
wp_reset_query();
wp_reset_postdata();
$paged = ($valuesArray["page"]) ? $valuesArray["page"] : 1;
$product_changes_posts = new WP_Query(array(
'cat' => 18,
'order' => 'DESC',
'posts_per_page' => 1,
'paged' => $paged
));
if($product_changes_posts->have_posts()) {
ob_start();
header("Access-Control-Allow-Origin: *");
header('Content-Type: application/json');
?>{"posts": [<?php
$count = $product_changes_posts->post_count;
$i = 1;
while($product_changes_posts->have_posts()) {
$product_changes_posts->the_post();
?>
{"title": <?php echo json_encode(get_the_title()); ?>, "content": <?php echo json_encode(apply_filters('the_content', get_the_content())); ?>, "url": <?php echo json_encode(get_permalink()); ?>}<?php if($i != $count): ?>,<?php endif; ?>
<?php
$i++;
}
?>],
"pages": <?php echo $product_changes_posts->max_num_pages ?>
}<?php
$result = ob_get_contents();
ob_end_clean();
wp_reset_query();
wp_reset_postdata();
die($result);
}
}
});
}