VSC przy pracy z WordPress

O co warto zadbać by tworząc własne theme czy pluginy na WordPress dobrze się nam pracowało w VSC?

Rozszerzenia/pluginy do VSC przy kodowaniu theme i pluginów w WordPress

niezbędne do PHP i WP

  • PHP Intelephense (by Intelephense) – zapewnia inteligentne podpowiadanie składni PHP, znajdowanie definicji funkcji i raportowanie błędów
  • WordPress Snippets (by Elev8 Web Studio) – zawiera gotowe skróty dla najpopularniejszych funkcji WordPressa (np. wpiszesz the_loop i dostaniesz całą strukturę pętli)
  • Hooks IntelliSense for WordPress (by John Blackbourn) – idealny przy pracy z add_action i add_filter. Podpowiada nazwy wszystkich dostępnych „haków” w WordPressie

Wygląd i Style (Frontend)

  • Sass (by ) – kluczowe dla składni .sass
  • Live Sass Compiler – jeśli nie używasz Gulp/Webpack, to rozszerzenie automatycznie wygeneruje plik .css z twojego .sass przy każdym zapisie
  • Auto Rename Tag (Jun Han) – zmieniasz tag otwierający (np. div), a VS Code automatycznie zmienia zamykający. Bardzo przydatne w skomplikowanych plikach PHP

Jakość kodu i Debugging

  • PHP Sniffer & Beautifier (by Samuel Hilson) – Pomaga utrzymać kod zgodnie z oficjalnymi standardami kodowania WordPressa (WordPress Coding Standards)
  • Error Lens (by Alexander) – Wyświetla błędy i ostrzeżenia bezpośrednio w linii kodu, zamiast tylko na dole w konsoli. Od razu widzisz, gdzie brakuje średnika

Organizacja pracy

  • Project Manager – Pozwala błyskawicznie przełączać się między różnymi projektami (np. różnymi motywami), nad którymi pracujesz
  • Path IntelliSense – Podpowiada ścieżki do plików, gdy np. chcesz załączyć obrazek lub inny plik .php

Aby Twój VS Code stał się profesjonalnym środowiskiem do WordPressa, musimy skonfigurować go tak, aby rozumiał specyficzną strukturę PHP oraz poprawnie formatował kod (WordPress ma swoje dość unikalne zasady, np. używanie tabulacji zamiast spacji).

Oto zoptymalizowana konfiguracja do wklejenia w settings.json (Cmd + Shift + P -> „Open User Settings (JSON)”):

{
    // --- PODSTAWY PHP I WP ---
    "php.suggest.basic": false, // Wyłączamy wbudowane sugestie na rzecz Intelephense
    "intelephense.stubs": [
        "wordpress",
        "apache",
        "bcmath",
        "bz2",
        "calendar",
        "Core",
        "curl",
        "date",
        "dom",
        "filter",
        "gd",
        "gettext",
        "hash",
        "iconv",
        "imap",
        "json",
        "libxml",
        "mbstring",
        "mysqli",
        "mysqlnd",
        "openssl",
        "pcntl",
        "pcre",
        "PDO",
        "pdo_mysql",
        "Phar",
        "readline",
        "Reflection",
        "session",
        "SimpleXML",
        "sockets",
        "standard",
        "tokenizer",
        "xml",
        "xdebug",
        "xmlreader",
        "xmlwriter",
        "zip",
        "zlib"
    ],

    // --- FORMATOWANIE ZGODNE Z WP ---
    "editor.tabSize": 4,
    "editor.insertSpaces": false, // WP preferuje taby (szczególnie w PHP)
    "editor.formatOnSave": true,
    
    "[php]": {
        "editor.defaultFormatter": "bmewburn.vscode-intelephense-client"
    },

    // --- EMMET W PHP (Kluczowe dla WordPressa) ---
    "emmet.includeLanguages": {
        "php": "html",
        "sass": "sass",
        "scss": "css"
    },

    // --- USPRAWNIENIA INTERFEJSU ---
    "editor.renderWhitespace": "boundary",
    "files.associations": {
        "*.php": "php"
    },
    
    // --- AUTOMATYKA SASS (jeśli masz Live Sass Compiler) ---
    "liveSassCompile.settings.formats": [
        {
            "format": "expanded",
            "extensionName": ".css",
            "savePath": "/" 
        }
    ],
    "liveSassCompile.settings.excludeList": [
        "**/node_modules/**",
        ".vscode/**"
    ]
}

Dlaczego ta konfiguracja jest ważna?

  • intelephense.stubs: Dodanie „wordpress” sprawi, że VS Code przestanie podkreślać funkcje typu get_header() czy the_content() jako błędy. Będziesz też mógł kliknąć w dowolną funkcję WP z klawiszem Cmd, aby zobaczyć jej źródło.
  • emmet.includeLanguages: Dzięki mapowaniu „php”: „html”, możesz wewnątrz pliku .php wpisać np. div.container i po naciśnięciu Tab otrzymać gotowy kod HTML, co drastycznie przyspiesza budowanie szablonów.
  • Taby vs Spacje: Oficjalne standardy WordPressa (WordPress Coding Standards) wymagają używania tabulatorów. Powyższe ustawienia dopilnują tego automatycznie.
  • Live Sass Compiler: Skonfigurowałem go tak, aby kompilował pliki CSS bezpośrednio w tym samym folderze (często w WP plik style.css musi być w głównym katalogu motywu).

Jeśli Twój motyw znajduje się w głębokiej strukturze folderów (np. wp-content/themes/moj-motyw), warto otworzyć w VS Code bezpośrednio folder motywu, a nie całą instalację WordPressa. Dzięki temu Intelephense będzie działać znacznie szybciej.

Hope this helps and happy coding :)

Zobacz jeszcze

ciekawe w css #3

inset Właściwość inset określa odległość między elementem a elementem nadrzędnym. Aby inset zadziałał, musisz określić również właściwość position. Inset pozwala skrócić...

readme.md

W projektach własnych tematów Wordpress o ile nie korzystasz z repozytorium GIT warto dodać plik .md jako dokumentację theme. Może to być standardowe README.md, lub CHANGELOG.md jeśli projekt...