Это происходит из-за встроенной возможности разбивать пост на страницы <!--nextpage-->
Как-то мне приходилось эту штуку фиксить.
Только вот не помню точно. В query есть параметр который показывает количество под страниц. Я цеплялся на хук pre_get_posts (вроди) и проверял есть ли страницы, если нет то возвращал 404.
Подробнее не припомню, и доступа к проекту где это делал уже нет.