Если вы когда-нибудь открывали проект в 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 подсвечены красным, и сделать вашу среду разработки удобной и стабильной.