Как сделать разные single.php для AJAX вывода через шорткод, и остальных страниц?
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(']]>', ']]&gt;', $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_, как положено...
Я сделал запрос вот таким способом:
Вызываем через ссылку:<a class="news-grid-more news-grid" href="#" data-single_url="'.get_permalink( $post->ID ).'"></a>
А дальше вот таким кодом вызываю фрагмент шаблона страницы:jQuery(document).ready(function($){
$('.news-grid-more').on('click', function(e){
    e.preventDefault();
	var single_url = $(this).data('single_url') + ' #single-article';
	target_top = $("#news-single").offset().top-45;
	$('html, body').animate({scrollTop:target_top}, 900);

	$('#news-single').slideUp(900, function(){
			$(this).load(single_url,function(){
				$(this).slideDown(900);
			 });
 });
Всё работает, кроме вызываемых внутри single-страницы js-ов.