Struktur
Introduktion
Horizons struktur är menat att ge en bra startpunkt för både stora och små WordPress sidor.
Vart kod ligger, både filer och PHP klasser, bestäms i slutändan av dig. Så länge Composer can autoload:a klassen (eller om du har modifierat sökvägarna i din konfiguration) bör allt funka som förväntat.
themes/your-theme-name/ # → Root of your Horizon-based theme
├── app/ # → Theme PHP
│ ├── Blocks/ # → ACF Block classes
│ ├── Options/ # → ACF Option classes
│ ├── Providers/ # → Service providers
│ ├── View/ # → View-related classes
│ │ ├── Components/ # → View component classes
│ │ ├── Composers/ # → View composer classes
│ │ └── NavWalker.php # → Custom navigation walker class
│ ├── admin.php # → Theme customizer setup
│ ├── ajax.php # → Theme AJAX actions
│ ├── cron.php # → Theme cron actions
│ ├── hooks.php # → Theme actions and filters
│ ├── globals.php # → Laravel overrides
│ ├── helpers.php # → Helper functions
│ └── setup.php # → Theme setup
├── config/ # → Config files
│ ├── blocks.php # → Setup disallowed Gutenberg blocks
│ ├── sizes.php # → Image sizing configuration
│ └── theme.php # → Automatically generated config for Tailwind colors and fonts (don't edit)
├── node_modules/ # → Node.js packages (never edit)
├── public/ # → Built theme assets (never edit)
├── resources/ # → Theme assets and templates
│ ├── fonts/ # → Theme fonts
│ ├── images/ # → Theme images
│ ├── lang/ # → Theme language files
│ ├── scripts/ # → Theme scripts
│ │ ├── blocks/ # → ACF Block scripts
│ │ ├── components/ # → Component scripts
│ │ ├── lib/ # → Script libraries
│ │ └── plugins/ # → Plugin scripts (Font Awesome etc.)
│ ├── styles/ # → Theme stylesheets
│ │ ├── blocks/ # → ACF Block styles
│ │ ├── common/ # → Common styles
│ │ ├── components/ # → Component styles
│ │ └── partials/ # → Partial styles
│ └── views/ # → Theme templates
│ ├── blocks/ # → ACF Block templates
│ ├── components/ # → Component templates
│ ├── form/ # → Form templates
│ ├── layouts/ # → Base templates
│ └── partials/ # → Partial templates
├── scripts/ # → Theme utility scripts
│ ├── favicons.mjs # → Favicon generation script
│ └── translate.mjs # → Translation script
├── storage/ # → Storage location for cache (never edit)
├── vendor/ # → Composer packages (never edit)
├── .editorconfig # → EditorConfig configuration
├── .eslintrc.cjs # → ESLint configuration
├── .gitattributes # → Git attributes
├── .gitignore # → Git ignore
├── .npmrc # → NPM configuration
├── .prettierignore # → Prettier ignore
├── .prettierrc # → Prettier configuration
├── .stylelintrc # → Stylelint configuration
├── composer.json # → PHP dependencies and autoloading for `app/` files
├── composer.lock # → Composer lock file (never edit)
├── functions.php # → Theme bootloader
├── index.php # → Theme template loader
├── package.json # → Node.js dependencies and scripts
├── phpcs.xml # → PHP CodeSniffer configuration
├── pint.json # → Pint configuration
├── pnpm-lock.yaml # → Node.js lock file (never edit)
├── README.md # → Theme README
├── screenshot.png # → Theme screenshot for WP admin
├── style.css # → Theme meta information
├── tailwind.config.mjs # → Tailwind configuration
├── tsconfig.json # → TypeScript configuration
└── vite.config.mjs # → Vite configurationHuvudmappen
app mappen
Mappen app innehåller kärnan och funktionaliteten för ditt tema. Nästan allt utom dina templates och assets kommer hittas i den här mappen.
public mappen
Mappen public innehåller ditt temas kompilerade assets som skapats med pnpm build. Denna mapp bör aldrig ändras manuellt.
node_modules mappen
Mappen node_modules innehåller dina Node dependencies, dessa används för att kompilera dina assets under utveckling. Den skapas och hanteras automatiskt och bör ej modifieras.
Ladda Ej Upp
Du bör aldrig behöva ladda upp denna mapp eller något av dess innehåll till en live produktionsserver. Det är en säkerhetsrisk och ett slöseri av tid.
resources mappen
Mappen resources innehåller dina Blade templates och dina assets, så som CSS, TypeScript/JavaScript, bilder och typsnitt.
vendor mappen
Mappen vendor innehåller dina Composer dependencies och Composers autoloader. Den här mappen skapas och hanteras automatiskt och bör ej modifieras.
app mappen
Majoriteten av ditt temas funktionalitet finns i app mappen. Som standard har den här mappen namespace:n App och laddas automatiskt av Composer genom PSR-4 autoloading standarden.
Mappen app innehåller flera extra mappar, så som View, Options och Providers, samt konfiguration (setup.php), filter (filters.php), actions (actions.php) m.m.
View mappen
Mappen View innehåller funktionalitet som rör dina Blade templates. Som standard finns mapparna Composers och Components, samt filen NavWalker.php.
NavWalker.php implementerar en egen Walker för menyer så att de får lite renare markup och klasser.
Providers mappen
Mappen Providers innehåller alla tema-specifika Service Providers. Om du är bekant med Laravel låter detta dig, genom Dusk, ta del av Laravels ekosystem i ditt tema.
Service Providers som skapas här kan extraheras till egna paket, men det är utanför ramen av denna dokumentation.
Options mappen
Mappen Options är en samlingsmapp för samtliga ACF Options sidor som skapats med ACF Composer.