Если вы когда-нибудь открывали проект в VS Code и замечали, что функции WordPress подсвечены красным вроде the_permalink() или the_title(), вы не одиноки. Я сам сталкивался с этим и знаю, как это раздражает. На самом деле, ваш код работает нормально, сайт не падает, но редактор «не понимает», что это функции WordPress. Давайте разберёмся, как сделать так, чтобы автокомплит работал, а красные подчёркивания исчезли.

Почему VS Code красит функции красным

Все функции WordPress, которые вы используете в теме или плагине, — это не нативные функции PHP. Они определены внутри ядра WP. Intelephense, расширение для VS Code, анализирует файлы в вакууме, не зная, что ваш проект — это WordPress. Поэтому он пишет Undefined function и подчёркивает функции красным.

Важно понимать, что с кодом всё в порядке — сайт работает. Красные подчёркивания — это исключительно проблема редактора. Конечно, можно просто игнорировать их, но для удобной работы с проектом и автокомплита лучше настроить IDE правильно.

Решение: подключаем WordPress stubs

Чтобы Intelephense видел все функции WP, когда функции WordPress подсвечены красным, нужны WordPress stubs. Это специальные файлы-заглушки, которые описывают все функции ядра WordPress. Они не подключаются на сайте и никак его не меняют — они нужны исключительно для IDE.

Вы можете скачать их либо через Composer, либо напрямую с GitHub. На практике, особенно на сервере с ограниченным Composer, удобнее использовать GitHub.

Пошаговая инструкция: подготовка stubs

Подключитесь к серверу через SSH или используйте Remote-SSH в VS Code.

Перейдите в корень WordPress, где находится wp-config.php. Например:

cd /home/w/ваш_хостинг/ваш_домен/public_html/

Проверьте, что вы на месте:

ls

Вы должны видеть wp-config.php, wp-content, wp-includes и другие стандартные файлы WordPress.

Создаём папку для stubs и скачиваем их с GitHub:

mkdir -p _ide
cd _ide
git clone https://github.com/php-stubs/wordpress-stubs.git

Проверяем содержимое папки:

ls wordpress-stubs

Вы должны увидеть файлы .php и другие ресурсы. Это и есть stubs — теперь Intelephense сможет их использовать.

Функции WordPress подсвечены красным: подключаем stubs и настраиваем Intelephense

Итак, мы скачали WordPress stubs и убедились, что все файлы на месте. Теперь важно правильно подключить их к Intelephense, чтобы редактор перестал подчёркивать функции WordPress красным. Сделаем это аккуратно, шаг за шагом.

Настройка Intelephense

Первое, что нужно сделать, это открыть настройки VS Code для Remote. Для этого нажмите:

Ctrl + Shift + P

и введите:

Preferences: Open Remote Settings (JSON)

Откроется файл настроек вида:

~/.vscode-server/data/Machine/settings.json

Именно сюда мы будем добавлять путь к stubs.

Правильный путь к stubs

Очень важно указать абсолютный путь на сервере. Если вы не уверены, какой путь у вашей папки _ide/wordpress-stubs, выполните команду:

pwd

Вы получите полный путь, например:

/home/w/webleg/wtemu.ru/_ide/wordpress-stubs

Теперь открываем settings.json и вставляем туда:

"intelephense.environment.includePaths": [
    "/home/w/webleg/wtemu.ru/_ide/wordpress-stubs"
]

Сохраняем файл (Ctrl + S) — это скажет Intelephense, где искать функции WordPress.

Очистка кэша и проверка

После добавления пути к stubs нужно очистить кэш Intelephense, иначе изменения не вступят в силу.

В VS Code:

Ctrl + Shift + P

и выберите:

Intelephense: Clear Cache

После этого перезапустите VS Code или Remote SSH-сессию.

Проверяем работу

Откройте любой файл темы, например:

wp-content/themes/baskerville/content-gallery.php

Вы должны увидеть, что функции вроде:

the_permalink()
the_title()
have_posts()

Теперь функции перестали быть красными, а автокомплит работает как надо.

На этом этапе Intelephense полностью понимает ваш проект WordPress и больше не ругается на функции ядра. Это решение работает на сервере через SSH и не требует сложных настроек или платных расширений.

Почему это так важно

WordPress живёт динамически: темы и плагины подключают функции через ядро. IDE не может «угадать», что этот файл исполняется в контексте WordPress. Intelephense — статический анализатор PHP, ему нужны stubs, чтобы знать, какие функции существуют, какие параметры они принимают и какие возвращают значения.

Теперь ваш редактор полностью дружит с WordPress, а работа с проектом становится комфортной.

Альтернатива для тех, кто использует PHPStorm

Если вы хотите полностью автоматическое распознавание функций WordPress без ручной настройки stubs, можно использовать PHPStorm с плагином WordPress. Там автокомплит и подсказки работают «из коробки». Но для VS Code этот метод с stubs остаётся самым простым и надёжным решением.

Функции WordPress подсвечены красным: финальные советы и рекомендации

Мы уже разобрались, почему функции WordPress подсвечены красным, скачали WordPress stubs, подключили их к редактору и очистили кэш. Теперь давайте подведём итоги и рассмотрим несколько дополнительных моментов, которые помогут сделать работу с WordPress в VS Code максимально комфортной.

Финальная проверка

После всех настроек откройте несколько файлов темы или плагина. Красные подчёркивания должны исчезнуть. Функции ядра WordPress распознаются, автокомплит работает, подсказки показывают параметры и типы возвращаемых значений.

Если вдруг какие-то функции остаются красными, убедитесь, что путь к stubs указан точно по серверу, а кэш Intelephense очищен.

Дополнительные советы

Организация папок stubs
Я рекомендую хранить stubs отдельно, в папке _ide в корне сайта. Это удобно, безопасно и не мешает работе самого WordPress.

Работа с SSH-Remote
Если вы подключаетесь к серверу через Remote-SSH, убедитесь, что все настройки Intelephense применяются именно к удалённой сессии, а не к локальному VS Code.

Скрипты и хуки
Теперь, когда Intelephense знает все функции WordPress, работать с хуками add_action, add_filter и объектами WP_Query стало гораздо проще — автокомплит и подсказки сохраняют ваше время и снижают вероятность ошибок.

Итог

Подводя итог, хочу подчеркнуть:

Красные подчёркивания в VS Code — это не ошибка PHP, а проблема редактора, который не видит динамические функции WordPress.

WordPress stubs решают эту проблему, предоставляя IDE статический «каркас» функций.

Настройка через settings.json и очистка кэша Intelephense полностью устраняют ситуацию, когда функции WordPress подсвечены красным.

Теперь работа с WordPress в VS Code комфортна, безопасна и продуктивна.

Надеюсь, эта статья помогла вам разобраться с проблемой, когда функции WordPress подсвечены красным, и сделать вашу среду разработки удобной и стабильной.