Вот что происходит когда заканчиваешь курсы по программированию за 3 месяца Х)
1. Что лежит в $posts ?
2. Что за значение в $post_id ?
Я подозреваю что в $posts массив всех постов, а в $post_id ид текущего поста.
Тогда вопрос: нафига проверять на количество постов если ты уже проверяешь конкретный пост?
И автору нужно разобраться с условиями И и ИЛИ
Ещё вариант что $post_id не объявлен и по этому ошибка
Попробуй такой вариант
if(is_front_page() && count($posts) && (isset($post_id) && $post_id == цифра)){
Для новичка пойдёт и такое решение