сделать другой шаблон на последних шести опубликованных публикациях

Я хотел сделать последние шесть сообщений разных шаблонов из других сообщений, но я не могу заставить его работать ниже, это мой код цикла, вставленный в мой index.php

$last_no_of_posts = 6; $ctr = 0; while ( have_posts() ) { the_post(); if ($ctr < $wp_query->found_posts - $last_no_of_posts) { // require special template get_template_part( 'loop', 'special' ); } else { // regular template get_template_part( 'loop', 'index' ); } $ctr++; } 

Solutions Collecting From Web of "сделать другой шаблон на последних шести опубликованных публикациях"

Как написано, вы проверяете общий счет почты против своего счетчика. То есть $wp_query – это общее количество сообщений для запроса, а не количество страниц.

Теперь предположим, что 30 сообщений в запросе содержат 10 сообщений на странице. Ваш счетчик начинается и $ctr < $wp_query->found_posts - $last_no_of_posts до 10, но $ctr < $wp_query->found_posts - $last_no_of_posts всегда истинно. $ctr будет 10 в конце этого цикла, но $wp_query->found_posts - $last_no_of_posts будет 30 – 10 или 20. То же самое со второй страницей результатов, потому что ваш счетчик начинается. То же самое со страницей после этого. В этом случае, и многим нравится, $ctr всегда меньше, чем found_posts минус ваш счетчик. Единственный способ идентифицировать последние шесть – это если все результаты находятся на одной странице – без разбивки на страницы. Возможно, именно это вы делаете, и это то, что вы хотите.

Однако, если вам нужно идентифицировать последние шесть на каждой странице разбивки на страницы, вам нужно переписать ее, чтобы использовать post_count not found_posts :

 while ( have_posts() ) { the_post(); if ($ctr < $wp_query->post_count - $last_no_of_posts) { // require special template get_template_part( 'loop', 'special' ); } else { // regular template get_template_part( 'loop', 'index' ); } $ctr++; } 

Если вам нужны последние шесть на последней странице разбивки на страницы, вам нужно (непроверено):

 if ($wp_query->current_post >= $wp_query->found_posts - $last_no_of_posts) {