Skip to content

Instantly share code, notes, and snippets.

@reesmcivor
Created August 20, 2012 10:15
Show Gist options
  • Save reesmcivor/3402856 to your computer and use it in GitHub Desktop.
Save reesmcivor/3402856 to your computer and use it in GitHub Desktop.
wordpress_json_posts
<?php
// include our wordpress functions
// change relative path to find your WP dir
define('WP_USE_THEMES', false);
require('./wp-blog-header.php');
// set header for json mime type
header('Content-type: application/json;');
// get latest single post
// exclude a category (#5)
query_posts(array(
'posts_per_page' => 5,
'cat' => -5,
));
$jsonpost = array();
if (have_posts()) {
if ( have_posts() ) : while ( have_posts() ) : the_post();
// construct our array for json
// apply_filters to content to process shortcodes, etc
$jsonpost["id"] = get_the_ID();
$jsonpost["title"] = get_the_title();
$jsonpost["url"] = apply_filters('the_permalink', get_permalink());
// $jsonpost["content"] = apply_filters('the_content', get_the_content());
$images = get_children( array( 'post_parent' => $post->ID, 'post_type' => 'attachment', 'post_mime_type' => 'image', 'orderby' => 'menu_order', 'order' => 'ASC', 'numberposts' => 999 ) );
if ( $images ) {
$total_images = count( $images );
$image = array_shift( $images );
$jsonpost['featured_image'] = wp_get_attachment_image( $image->ID, 'thumbnail' );
}
$jsonpost["content"] = get_the_content();
// would rather do iso 8601, but not supported in gwt (yet)
$jsonpost["date"] = get_the_time('d F Y');
$jsonposts[] = $jsonpost;
endwhile;
endif;
} else {
// deal with no posts returned
}
// output json to file
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json');
echo json_encode($jsonposts);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment