if ( !is_front_page() || !is_home() ){ }
Попытка номер два. Предположим, что главная страница имеет в себе код выввода самой себя, а также дополнительную логику для GET запросов через AJAX:
$my_command = ''; 
$my_post_id = '';
if (!empty($_GET)) {
	foreach ($_GET as $key => $value) {
	    if ( !empty($key) && !empty($value) ) {
			$my_command = $key;
			$my_post_id = $value;
	    }
	}
}
//Не забудьте обезвредить все, что злоумышленники передадут в GET запрос
if ($my_command == 'get_post_content_by_id' && $my_post_id != '') {
	
	//Здесь выводим информацию на основе полученого GET запроса, например:
	$content_all = get_post($my_post_id);
	$content = $content_all->post_content;
	$content = apply_filters('the_content', $content);
	$content = str_replace(']]>', ']]>', $content);
	echo $content;
} else if ($my_command == 'get_post_excerpt_by_id' && $my_post_id != '') {
	
	//Другой запрос
	$excerpt_all = get_excerpt($my_post_id);
	$excerpt = $excerpt_all->post_excerpt;
	echo $excerpt;
	
} else {
	//Если нет запроса, выводим обычное содержание страницы
	get_header();
	//...
	get_footer();
}
Запрос:
jQuery.get( "/_my_page_url_/", { get_post_content_by_id: "123"} );
Но я бы делал как пишет далее 
crazyASD: ...через wp_ajax_ и/или wp_ajax_nopriv_, как положено...