У меня же на сайте, был схожий материал, а точнее статья - WP_Query выводит больше записей, чем указанно в параметре posts_per_page. Там я объяснил, что происходит это из за прилепленных записей, которые можно закрепить на главной и при добавлении новых статей, эти всегда будут впереди. Если пользоваться WP_Query, то вопрос отпадает, но если используется стандартный цикл и WordPress, то он твердо выводит все прикрепленные записи.
Если у вам не нужны прикрепленные записи и у вас их= несколько, то зайдите в консоль и там просто открепите эти записи и все. Но если, на вашем сайте раньше специально прилеплялись записи, таким образом выводились избранные статьи, а теперь вы решили поменять концепцию и желания редактировать все прилепленные статьи у вас нет, то вам поможет следующая небольшая функция.
add_action( 'pre_get_posts', 'turn_off_sticky' );
function turn_off_sticky( $query ) {
if ( $query->is_main_query() ) {
$query->set( 'ignore_sticky_posts', true );
}
}
Функция добавляется в файл пользовательских функций - function.php. Если не знакомы с его структурой, то добавляете в самый конец перед закрывающим тегом PHP ?>. Если его нет, то просто в самый конец файла.
Перед изменением function.php, обязательно сохраните его копию, чтобы в дальнейшем, в случаи ошибки, вернуть все как было.
После добавления можете оценить результат.
На этом все, спасибо за внимание. 🙂