Menu's in Joomla
11. Ecosysteem en extensies
11.1 Voorwaardelijke Custom Fields
Voorwaardelijke velden verschijnen of verdwijnen afhankelijk van de waarde van een ander veld. Dit wordt in Joomla 6 standaard ondersteund via plugininstellingen. Een typisch voorbeeld is een veld "Ticket URL" dat alleen wordt getoond wanneer het selectievakje "Heeft tickets" is ingeschakeld.
11.2 YOOtheme Pro
YOOtheme Pro is een populaire pagebuilder-template die Joomla Custom Fields integreert in het systeem voor dynamische content:
- Plaats een custom field-waarde in elk builder-element.
- Filter en sorteer dynamische lijsten op basis van custom field-waarden.
- Gebruik het ingebouwde veld Location (breedte- en lengtegraad) op een kaart.
Als je team al met YOOtheme werkt, hoef je waarschijnlijk nooit een layout override voor velden te schrijven.
11.3 Advanced Custom Fields van Tassos
Deze extensie van derden voegt veldtypen toe die niet standaard in Joomla zitten, samen met uitgebreidere renderopties en conditionele logica. Handig wanneer de 18 standaard veldtypen niet voldoende zijn, maar een volledige CCK te veel van het goede zou zijn.
11.4 Wanneer kies je beter voor een CCK?
Custom Fields zijn ideaal voor content met extra eigenschappen. Voor echte databasegestuurde toepassingen, zoals boekingssystemen, vastgoedwebsites met zoekfilters of complexe relaties, kun je beter kijken naar:
- Seblod of Fabrik: volledige content construction kits.
- Een maatwerkcomponent die integreert met
com_fields.
12. Best practices
Als je maar een paar dingen uit dit artikel onthoudt, laat het dan deze zijn:
- Plan je velden en veldgroepen voordat je content gaat aanmaken.
- Kies vanaf het begin het juiste type. Achteraf wijzigen is vaak pijnlijk.
- Gebruik duidelijke systeemnamen zoals
event_date, nooitField1. - Groepeer gerelateerde velden in Field Groups voor een overzichtelijke editorervaring.
- Gebruik het Number-veld (nieuw in Joomla 6) voor prijzen en percentages.
- Gebruik het Note-veld (nieuw in Joomla 6) om redacteuren binnen het formulier te begeleiden.
- Gebruik Subforms voor gegevens waarbij één item meerdere onderdelen bevat.
- Stel ACL alleen op veldniveau in wanneer dat echt nodig is. Gebruik waar mogelijk overerving.
- Overschrijf layouts onder
layouts/com_fields/field/als je volledige controle wilt over de weergave.
13. In het kort
VELD AANMAKEN Content → Fields → New
GROEP AANMAKEN Content → Field Groups → New
TOEWIJZEN Field → tabblad Assigned Categories
WEERGEVEN Field → instelling Automatic Display
INLINE of in de inhoud
OVERRIDE templates/{tpl}/html/layouts/com_fields/...
TYPE OVERRIDE render-<fieldname>.php voor één veld
GEBRUIKERS Users → Manage → Fields
CONTACTEN Components → Contacts → Fields
CATEGORIEËN Content → Categories → Fields
TAGS Components → Tags → Fields
CORE-TYPEN 18 in Joomla 6 (Number en Note zijn nieuw)
SUBFORM Herhaalbare gegevens, opgeslagen als JSON
SQL-VELD Alleen voor Super Users, voorzichtig gebruiken
API FieldsHelper::getFields('com_content.article', $item)
HEADLESS /api/index.php/v1/content/articles/N → fields[]
TABELLEN #__fields / _groups / _values / _categories
Naar boven14. Samenvatting
Custom Fields veranderen Joomla van een standaard CMS in een lichtgewicht platform voor contentmodellering. Ze bieden:
- Structuur: content met een voorspelbare opbouw.
- Herbruikbaarheid: dezelfde velden voor meerdere items.
- Gebruikerservaring per categorie: redacteuren zien alleen wat ze nodig hebben.
- Weergave: automatisch, via shortcodes of met volledige template overrides.
- Rechtenbeheer: duidelijke controle over wie mag bewerken en wie wat mag zien.
- Uitbreidbaarheid: eigen veldtypen via plugins.
- Integratie: artikelen, gebruikers, contacten, tags, categorieën en componenten van derden.
Een goed ontworpen verzameling Custom Fields maakt een Joomla-website makkelijker te bewerken, eenvoudiger te onderhouden en beter uitbreidbaar. Slecht benoemde of verkeerd toegewezen velden veroorzaken juist problemen die meegroeien met de website.
Ben je bezig met een nieuw Joomla-project, ontwerp je een complex contenttype of denk je na over een headless architectuur, dan zijn Custom Fields één van de eerste functies om naar te kijken. Ze zijn misschien niet de meest opvallende functie van Joomla, maar wel een van de krachtigste redenen waarom Joomla meer flexibiliteit biedt dan veel CMS-systemen met een vaste contentstructuur.
Naar boven4. De Itemid, Joomla's verborgen contextmotor
4.1 Wat is de Itemid?
Elke frontendpagina die Joomla weergeeft, is gekoppeld aan een menu-item via de URL-parameter Itemid. De Itemid bepaalt:
- Welk menu-item actief wordt gemarkeerd.
- Welke modules worden getoond.
- Welke template style wordt gebruikt, als het menu-item deze overschrijft.
- Welke pagina-instellingen gelden: browsertitel, page class, robots.
- De breadcrumbs.
Hetzelfde artikel met twee verschillende
Itemid-waarden wordt twee verschillende pagina's.
4.2 Wat gebeurt er zonder Itemid?
Als een URL geen Itemid bevat, probeert Joomla's router er zelf één te bepalen. Die gok is niet altijd correct, wat kan leiden tot:
- Het verkeerde actieve menu-item.
- Modules die verschijnen waar ze niet horen, of juist ontbreken.
- Dubbele URL's voor dezelfde content.
- Verkeerde breadcrumbs.
Als een pagina zich vreemd gedraagt, is de eerste controle meestal de Itemid.
4.3 De Itemid controleren
Je kunt de Itemid bekijken door &tp=1 aan de URL toe te voegen (templateposities), of door naar de ruwe querystring te kijken voordat SEF de URL herschrijft. De Itemid is het laatste numerieke ID in de URL:
index.php?option=com_content&view=article&id=42&Itemid=123
Naar boven5. Menu-items bepalen welke modules worden getoond
5.1 Opties voor moduletoewijzing
Voor elke module in Joomla bepaal je waar deze moet verschijnen:
- Op alle pagina's.
- Op geen enkele pagina.
- Alleen op geselecteerde pagina's.
- Op alle pagina's behalve de geselecteerde.
De geselecteerde pagina's zijn menu-items. De relatie tussen modules en menu-items wordt opgeslagen in de tabel #__modules_menu.
5.2 Waarom dit zo krachtig is
Je kunt de volledige layout per pagina aanpassen zonder code te schrijven:
Homepage-slider → alleen op het Home-menu-item
Sidebar met winkelactie → alleen op winkelcategoriepagina's
Nieuwsbriefinschrijving → overal behalve bij afrekenen
Loginmodule → alleen op het Login-menu-item
5.3 Een handige vuistregel
Naar bovenMoet een module slechts op één plek verschijnen, geef die pagina dan een eigen menu-item, zelfs als dat menu-item verborgen is.
6. Verborgen menu's
6.1 Wat is een verborgen menu?
Een verborgen menu is een menu met menu-items waarvoor geen Menu-module is gepubliceerd. Bezoekers kunnen deze URL's nog steeds rechtstreeks openen, maar de menu-items verschijnen nergens in de navigatie.
6.2 Wanneer gebruik je een verborgen menu?
Verborgen menu's zijn handig voor allerlei praktijksituaties:
- Campagnelandingspagina's met eigen modules.
- "Bedankt"- en orderbevestigingspagina's.
- Interne pagina's met beperkte toegang.
- Zoekresultaatpagina's.
- Printversies of alternatieve layouts.
- Workflow- of tussenstappen in meerstapsformulieren.
6.3 De truc
De verborgen pagina krijgt nog steeds een geldige Itemid, waardoor:
- Moduletoewijzingen correct werken.
- Metadata en page class beschikbaar zijn.
- Routing en SEF-URL's goed functioneren.
Je krijgt alle voordelen van een menu-item, zonder extra rommel in de navigatie.
Naar boven7. Meertalige menu's
7.1 Het patroon
Voor een meertalige website maak je meestal:
- Één menu per taal, bijvoorbeeld
mainmenu-enenmainmenu-nl. - Associaties tussen equivalente menu-items in verschillende talen.
- Één Home-menu-item per taal, allemaal gemarkeerd als standaardpagina.
7.2 Associaties
Open een menu-item en ga naar het tabblad Associations:
System → Menus → All Menu Items → [item] → Associations
Door equivalente menu-items aan elkaar te koppelen, activeer je:
- De module Language Switcher.
- Routing naar dezelfde pagina in een andere taal.
- Correcte
hreflang-tags. - Vertaalde breadcrumbs.
De associatie wordt opgeslagen in de tabel #__associations met context = com_menus.item.
7.3 Veelgemaakte fouten bij meertalige websites
- Vergeten een Home-menu-item in te stellen voor elke taal.
- Menu-items met taal "Alle" combineren met taalspecifieke menu-items.
- Ontbrekende associaties, waardoor de taalwisselaar bezoekers terugstuurt naar de homepage.
- Verschillende aliasstructuren per taal.
8. Toegangsbeheer (ACL)
8.1 Twee lagen van zichtbaarheid
Menu-items hebben twee afzonderlijke lagen van toegangsbeheer. Dat zijn niet dezelfde dingen:
| Laag | Wat het bepaalt |
|---|---|
| Access Level | Of een gebruiker de link naar het menu-item ziet. |
| Rechten op component- of itemniveau | Of een gebruiker het doel daadwerkelijk kan openen. |
Een gebruiker die geen toegang heeft tot een artikel krijgt die toegang niet automatisch omdat de menulink zichtbaar is.
8.2 Praktische voorbeelden
- Een openbare website met een ledenomgeving achter het toegangsniveau
Registered. - Een intranet waar menu-items alleen zichtbaar zijn voor
Special. - Een onboardingproces dat is afgeschermd met een aangepast toegangsniveau "Onboarding".
- Een link "Profiel bewerken" die alleen zichtbaar is voor ingelogde gebruikers.
8.3 ACL-valkuilen bij menu's
- Een menu-item verbergen beveiligt de URL niet. Je moet ook de onderliggende content afschermen.
- Een menu-item met
Access = Publicdat verwijst naar een artikel metRegistered-toegang zorgt voor een verwarrende 403-fout. - Moduletoewijzingen erven ook toegangsniveaus. Een module voor ingelogde gebruikers op een openbaar menu-item wordt alleen weergegeven aan bezoekers die zijn ingelogd.
9. Routing en SEF
9.1 De routeerpijplijn
Wanneer een bezoeker een Joomla-pagina opent, doorloopt het systeem verschillende stappen:
- De browser verstuurt een verzoek, bijvoorbeeld
/nieuws/joomla-6-uitgebracht. - De router van Joomla analyseert de URL.
- De router zoekt het bijbehorende menu-item, bijvoorbeeld een Category Blog voor
nieuws. - De
Itemidwordt ingesteld en vervolgens wordt de component bepaald. - Joomla bouwt de parameters op, wijst modules toe en rendert de template.
Het menu-item vormt het anker voor dit hele proces.
9.2 SEF en menu-items
Met SEF-URL's ingeschakeld wordt de alias van het menu-item onderdeel van het URL-pad. Geneste menu-items leveren geneste URL-structuren op:
Main Menu → Nieuws (alias: nieuws)
└── Category Blog (alias: producten)
└── Artikel (alias: laptops)
URL: /nieuws/producten/laptops
Een goede aliasstrategie houdt URL's kort, voorspelbaar en SEO-vriendelijk.
9.3 Canonieke pagina's
Wanneer twee menu-items naar dezelfde content verwijzen, genereert Joomla een canonieke <link rel="canonical"> naar de pagina die als hoofdversie wordt beschouwd. Controleer dit zorgvuldig wanneer je de navigatiestructuur wijzigt, omdat canonicals onverwacht kunnen veranderen.
9.4 SEO-voordelen in één oogopslag
Een goed opgebouwde menustructuur levert automatisch:
- Schone URL's gebaseerd op menu-item-aliasen.
- Hiërarchische URL-paden die overeenkomen met de informatiearchitectuur van de website.
- Metadata per pagina: browsertitel, beschrijving en robotsinstellingen.
- Breadcrumbs die worden opgebouwd vanuit de menustructuur.
- Canonieke tags die dubbele routes consolideren.
hreflang-signalen via meertalige associaties.- Onderwerpclusters doordat onderliggende pagina's binnen hetzelfde URL-pad vallen.
Een slechte menustructuur veroorzaakt precies het tegenovergestelde: dubbele content, lelijke fallback-URL's, conflicterende canonicals, kapotte breadcrumbs en onjuiste hreflang-relaties.
Naar bovenEen goed opgebouwd menu is één van de goedkoopste SEO-winsten in Joomla.
10. Beheermenu's
10.1 Het backendmenu is ook gewoon data
Het beheermenu wordt eveneens opgeslagen in de tabel #__menu, maar met client_id = 1 en menutype = main. Je kunt het net als elk ander menu beheren via:
System → Menus → Administrator Menus
10.2 Een backend die vriendelijk is voor klanten
Je kunt een vereenvoudigd beheermenu maken dat alleen de onderdelen bevat die een klant daadwerkelijk nodig heeft:
Content → Artikelen | Categorieën | Uitgelicht | Media
Shop → Producten | Bestellingen | Klanten
Marketing → Nieuwsbrief | Campagnes | Formulieren
Instellingen → Gebruikers | Modules | Template
Het resultaat:
- Minder verwarring voor niet-technische redacteuren.
- Minder kans op onbedoelde wijzigingen in systeeminstellingen.
- Snellere onboarding van nieuwe medewerkers.
- Minder supportvragen voor bureaus en beheerders.
10.3 Workflow-snelkoppelingen
Praktische éénklik-items die redacteuren veel tijd besparen:
- Artikel toevoegen:
index.php?option=com_content&task=article.add - Wachtende inzendingen: een gefilterde artikelenlijst met status "niet gepubliceerd".
- Bestellingen van vandaag: een componentweergave die vooraf is gefilterd op datum.
- Nieuwsbriefcampagnes: direct naar de campagnecomponent.
Elke snelkoppeling is een URL-menu-item met de juiste querystring. Geen code, alleen configuratie.
10.4 Rolgebaseerde backendnavigatie
Je kunt beheermenu's combineren met ACL zodat elke gebruikersgroep zijn eigen backend ziet:
| Groep | Menu toont |
|---|---|
| Redacteuren | Artikelen, Media, Categorieën, Tags. |
| Marketing | Banners, SEO-tools, Campagnes, Smart Search. |
| Winkelbeheerders | Producten, Bestellingen, Klanten, Kortingscodes. |
| Ontwikkelaars | Templates, Extensies, Systeemtools, Plugins. |
| Super Users | Alles (het standaardmenu main). |
Het gebruikelijke patroon is: één beheermenu per rol, afgeschermd met een Access Level op elk menu-item.
10.5 Beheermenu-items versus frontendmenu-items
Menu-items in de backend gedragen zich anders dan frontendmenu-items:
- Ze maken geen frontendpagina's aan.
- Ze hebben geen invloed op routing of SEO.
- Ze ondersteunen wel ACL, waardoor je items per gebruikersgroep kunt afschermen.
- Ze ondersteunen wel iconen en hiërarchische structuren.
Het is één van de meest onderbenutte functies van Joomla.
Naar boven11. Onder de motorkap (voor ontwikkelaars)
11.1 De tabel #__menu
Elk menu-item, zowel in de frontend als backend, wordt opgeslagen in dezelfde tabel. De belangrijkste kolommen zijn:
id -- primaire sleutel, gebruikt als Itemid
menutype -- bij welk menu het hoort
title -- zichtbaar label
alias -- SEF-segment
path -- volledig aliasspoor (ouder/kind/kleinkind)
link -- onderliggende index.php?option=... query
type -- component | url | alias | separator | heading
published -- 0 = niet gepubliceerd, 1 = gepubliceerd, -2 = verwijderd
parent_id -- bovenliggend menu-item
level -- diepte in de boomstructuur
component_id -- gekoppelde component
access -- ACL-toegangsniveau
template_style_id -- template style-override
params -- JSON met layout- en metadata-opties
lft, rgt -- nested set-waarden
home -- 1 = standaardpagina (per taal)
language -- '*' of een specifieke taalcode
client_id -- 0 = frontend, 1 = administrator
publish_up -- geplande publicatiedatum
publish_down -- geplande depublicatiedatum
De kolom params bevat alle configuratie per menu-item in JSON-formaat: titel tonen, page class suffix, robots-instellingen, bloglayout en meer.
11.2 De tabel #__menu_types
De tabel #__menu_types bevat de menucontainers, één record per menu (mainmenu, footer, usermenu enzovoort).
| Tabel | Bevat | Koppeling via |
|---|---|---|
#__menu_types |
De menu's zelf. | menutype (een string). |
#__menu |
De menu-items. | menutype komt overeen. |
Opvallend is dat de koppeling gebeurt via een string en niet via een ID. Dat is een typische Joomla-eigenaardigheid.
11.3 De tabel #__modules_menu
Deze kleine maar krachtige tabel bevat de relatie tussen modules en de menu-items waarop ze worden weergegeven:
moduleid -- welke module
menuid -- welk menu-item (Itemid)
positief = "toon op dit item"
negatief = "toon op alle items behalve deze"
0 = "alle pagina's"
Deze kleine tabel vormt de basis van Joomla's volledige strategie voor moduletoewijzing per pagina.
11.4 Het Nested Set Model (lft en rgt)
Net als categorieën gebruiken menu-items het Nested Set Model. Elk item heeft een lft- en rgt-waarde. Het bereik van een ouderitem omvat altijd alle onderliggende items:
Main Menu Root lft=1 rgt=10
├── Home lft=2 rgt=3
└── Nieuws lft=4 rgt=9
├── Nationaal lft=5 rgt=6
└── Internationaal lft=7 rgt=8
Om alle onderliggende items van "Nieuws" op te halen, heb je slechts één query nodig:
SELECT id, title
FROM #__menu
WHERE lft > 4 AND rgt < 9
ORDER BY lft;
Recursie is niet nodig. Dat is precies de kracht van dit model.
11.5 De knop Rebuild
Het scherm Alle menu-items bevat een knop Rebuild in de werkbalk:
System → Menus → All Menu Items → Rebuild
Rebuild berekent de kolommen lft, rgt, level en path opnieuw op basis van parent_id. Gebruik dit na:
- Het importeren van menu-items via SQL.
- Een mislukte opslagactie.
- Een migratie vanaf een andere website.
- Handmatige databasewijzigingen aan ouder-kindrelaties.
11.6 Handige SQL-voorbeelden
Toon alle gepubliceerde frontendmenu-items in boomvolgorde:
SELECT id, menutype, title, alias, level, link
FROM jos_menu
WHERE client_id = 0
AND published = 1
ORDER BY lft;
Toon welke modules op welke menu-items verschijnen:
SELECT m.id AS itemid, m.title AS pagina,
mod.id AS moduleid, mod.title AS module
FROM jos_menu m
JOIN jos_modules_menu mm ON mm.menuid = m.id
JOIN jos_modules mod ON mod.id = mm.moduleid
WHERE m.client_id = 0
ORDER BY m.lft;
Zoek moduletoewijzingen die verwijzen naar een verwijderd menu-item:
SELECT mm.*
FROM jos_modules_menu mm
LEFT JOIN jos_menu m ON m.id = mm.menuid
WHERE mm.menuid > 0 AND m.id IS NULL;
11.7 De PHP API
Vanuit PHP kun je menu's benaderen via een nette API:
use Joomla\CMS\Factory;
$app = Factory::getApplication();
$menu = $app->getMenu(); // SiteMenu of AdminMenu
$active = $menu->getActive(); // huidig menu-item
$home = $menu->getDefault(); // standaardpagina voor huidige taal
$item = $menu->getItem(101); // op id
$tree = $menu->getTree(); // breadcrumbpad
$items = $menu->getItems('menutype', 'mainmenu');
11.8 Events om op aan te haken
Plugins kunnen reageren op menu-gerelateerde events:
| Event | Wanneer uitgevoerd |
|---|---|
onAfterRoute |
Nadat de router een menu-item heeft gevonden. |
onContentPrepare (context com_menus.item) |
Vóór het renderen van een menu-item. |
onExtensionAfterSave (context com_menus.item) |
Nadat een menu-item is opgeslagen. |
onExtensionAfterDelete |
Nadat een menu-item is verwijderd. |
12. Veelgemaakte fouten en valkuilen
12.1 Te veel menu-items op het hoogste niveau
Een platte menubalk met te veel items is lastig te scannen:
Home Nieuws Blog Evenementen Over ons Team Geschiedenis Contact Zoeken
Een ondiepe structuur met logische groepering werkt veel beter:
Home Nieuws Over ons Contact
├── Team
├── Geschiedenis
└── Missie
12.2 Geen standaard Home-menu-item per taal
Typische symptomen zijn een lege homepage, een 404-fout op / of de verkeerde taal op de root-URL. De oplossing is eenvoudig: elke actieve taal moet precies één Home-menu-item hebben, gemarkeerd met de gele ster.
12.3 Verborgen betekent niet beveiligd
Het verwijderen van een Menu-module verbergt de onderliggende pagina niet. Als de URL gevoelig is, stel dan een Access Level in op zowel het menu-item als de onderliggende content.
12.4 Alias-wijzigingen met gevolgen
Het hernoemen van een menu-item verandert vaak ook de alias, en dus de URL. Dat heeft gevolgen voor SEO. Als je een URL moet wijzigen, stel dan een 301-redirect in via com_redirect of een redirectplugin.
12.5 Dubbele menu-items voor dezelfde content
Als twee menu-items naar dezelfde content verwijzen, kiest Joomla één ervan als canonieke versie. Welke dat is, is niet altijd duidelijk. Heb je echt meerdere navigatiepaden naar dezelfde content nodig, gebruik dan een System Link van het type Alias in plaats van twee afzonderlijke menu-items.
12.6 Moduletoewijzing vergeten
Een module die is ingesteld op "Only on the pages selected" maar geen geselecteerde pagina's heeft, wordt nergens weergegeven. Dit is verrassend vaak een bug waar je een half uur naar kunt zoeken.
12.7 Client_id door elkaar halen
Het bewerken van de verkeerde regel in #__menu kan het beheermenu beschadigen. Filter altijd op client_id wanneer je rechtstreeks met de database werkt.
13. Best practices
Als je maar een paar dingen uit dit artikel onthoudt, laat het dan deze zijn:
- Plan je menustructuur voordat je content gaat aanmaken. Menu-items bepalen URL's, modules, SEO en ACL.
- Beschouw elk "type pagina" als een kandidaat voor een eigen menu-item, ook als dat menu-item verborgen blijft.
- Houd aliassen kort, in kleine letters, met koppeltekens en zo stabiel mogelijk.
- Gebruik Headings en Separators om lange dropdownmenu's overzichtelijk te groeperen.
- Documenteer verborgen menu's zodat toekomstige beheerders weten dat ze bestaan.
- Voer Rebuild uit na migraties of directe databasewijzigingen.
14. In het kort
MENU AANMAKEN System → Menus → Menus → New
ITEM AANMAKEN System → Menus → [Menunaam] → New
TONEN OP FRONTEND Publiceer een Menu-module voor het menutype
HOMEPAGINA Markeer een item als "Default" (gele ster) per taal
ITEMID De id-kolom van #__menu, bepaalt modules, SEO en layout
PAGINA VERBERGEN Plaats deze in een menu zonder Menu-module
AFSCHERMEN Access Level (op menu-item én content)
MEERTALIG Eén menu per taal + Associations
VOLGORDE Slepen en neerzetten, of Rebuild gebruiken na SQL-wijzigingen
BOOM HERSTELLEN System → Menus → All Menu Items → Rebuild
MODULE PER PAGINA Module → Menu Assignment → Only on the pages selected
TEMPLATE OVERRIDE Stel Template Style in op het menu-item
ZELFDE PAGINA Gebruik System Links → Menu Item Alias
Naar boven15. Samenvatting
In Joomla is een menu-item veel meer dan alleen een link. Het is een volledige paginadefinitie die bijna elke laag van het systeem beïnvloedt:
- Routing: de URL en de canonieke link.
- Weergave: de layout, de template style en de getoonde modules.
- Configuratie: paginatitel, metadata, page class en robotsinstellingen.
- Toegang: wie de pagina kan zien en gebruiken.
- Taal: de koppeling met de meertalige variant.
- Context: de
Itemiddie alles met elkaar verbindt.
Een goed doordachte menustructuur bespaart tijd, voorkomt fouten en maakt een Joomla-website jarenlang eenvoudiger te onderhouden. Een slechte menustructuur veroorzaakt problemen die meegroeien met de site: kapotte URL's, verkeerde modules, verwarrende canonicals en SEO-problemen.
Ben je een nieuwe Joomla-website aan het plannen, migreer je vanaf een oudere versie of vermoed je dat de huidige navigatiestructuur problemen veroorzaakt, dan loont het om vroeg naar de menu's te kijken. Begrijp je menu-items, dan begrijp je Joomla.
Naar boven

Joomla en Linux specialist voor snelle, veilige en schaalbare websites.


