<?php /* Plugin Name: jQuery Static Index * Description: Activate this plugin if the page 'index' is to be the static front page for a site. * Author: Andrew Nacin * Author URI: http://nacin.com/ * Version: 0.1 */ add_filter( 'pre_option_show_on_front', 'jquery_filter_show_on_front' ); add_filter( 'pre_option_page_on_front', 'jquery_filter_page_on_front' ); add_action( 'posts_request', 'jquery_on_posts_request', 10, 2 ); function jquery_filter_show_on_front( $value ) { return 'page'; } function jquery_filter_page_on_front( $value ) { static $page_on_front; if ( isset( $page_on_front ) ) return $page_on_front; if ( $page = get_page_by_path( 'index' ) ) return $page_on_front = $page->ID; return $page_on_front = 0; } // Nuke the main query, we don't need it. function jquery_on_posts_request( $request, $query ) { if ( $query->is_page && $query->get('p') && $query->get('p') == get_option( 'page_on_front' ) && $query->is_main_query() ) { add_filter( 'posts_results', 'jquery_on_posts_results', 10, 2 ); return false; } return $request; } // Set up $wp_query->posts. function jquery_on_posts_results( $posts, $query ) { remove_filter( 'posts_results', 'jquery_on_posts_results', 10, 2 ); return array( get_page( get_option( 'page_on_front' ) ) ); }