How to convert and use JSON data from a remote Wordpress server?
Question
I got this code
add_action( 'init', 'check_api_data' ); function check_api_data() { if(isset($_GET['api']) ) { if ($_GET['api'] == 'json'){ $args = array( 'post_type' => 'post' ); $query = new WP_Query( $args ); // $query is the WP_Query Object $posts = $query->get_posts(); // $posts contains the post objects $output = array(); foreach( $posts as $post ) { // Pluck the id and title attributes $output[] = array( 'id' => $post->ID, 'title' => $post->post_title, 'content' => $post ->post_content, 'imageurl' => wp_get_attachment_url( get_post_thumbnail_id($post->ID) ) ); } header("Content-type: application/json"); echo json_encode( $output ); } exit(); } }
This is the output:
[ { "id": 19, "title": "Early bird tickets", "content": "that is good", "imageurl": "http://localhost/PRACTISE/wp/wp-content/uploads/2016/10/news2.jpg" }, { "id": 95, "title": "See you next year!", "content": "Lorem ipsum", "imageurl": "http://localhost/PRACTISE/wp/wp-content/uploads/2016/11/tak_for_i_aar.jpg" } ]
How can I use this data in a remote server, so that everytime I update my content of Server A it gets updated at Server B
Solution
On server B:
$result = wp_remote_post('http://serverA.com/?api=json', array(
'method' => 'POST',
'redirection' => 1,
'httpversion' => '1.0',
'blocking' => true,
'headers' => array(),
'body' => array(),
'cookies' => array()
));
if ( is_wp_error( $result ) ) {
return 'bad connection!';
}
$json = $result['body'];
$posts = json_decode($json);
Now you have $posts as usual php array. var_dump($posts)
will look like:
array(2) {
[0]=>
object(stdClass)#7918 (4) {
["id"]=>
int(19)
["title"]=>
string(18) "Early bird tickets"
["content"]=>
string(12) "that is good"
["imageurl"]=>
string(65) "http://localhost/PRACTISE/wp/wp-content/uploads/2016/10/news2.jpg"
}
[1]=>
object(stdClass)#7919 (4) {
["id"]=>
int(95)
["title"]=>
string(18) "See you next year!"
["content"]=>
string(11) "Lorem ipsum"
["imageurl"]=>
string(73) "http://localhost/PRACTISE/wp/wp-content/uploads/2016/11/tak_for_i_aar.jpg"
}
}
Licensed under: CC-BY-SA with attribution
Not affiliated with wordpress.stackexchange