function pfp_pre_get_posts ( $query ) {
// only interested in home page and the main query
if ( !$query->is_home() || !$query->is_main_query() ) return;
// default args - most recent post
$args = 'posts_per_page=1&order=DESC&orderby=date&ignore_sticky_posts=true';
// check for sticky posts
$sticky = get_option( 'sticky_posts' );
// have sticky posts so use them
if ( $sticky != '' ) {
$args = 'p=' . $sticky[0];
}
// clear the current query
$query->init();
// parse in the new arguments
$query->parse_query( $args );
}
add_action( 'pre_get_posts' , 'pfp_pre_get_posts' );