---
title: "Meta menu / Footer menu in TYPO3"
manual: "Site Package Tutorial"
version: "14.3"
permalink: "https://docs.typo3.org/permalink/t3sitepackage:meta-menu@14.3"
source: "Menu/MetaMenu.rst"
rendered: "2026-10-01T16:42:56+00:00"
---

# Meta menu / Footer menu in TYPO3 {#meta-menu}

A meta menu - often but not always displayed in the footer of a website -
displays only selected pages like "Imprint", "Contact", "Data Privacy", ...

If you use a [Generated site package](https://docs.typo3.org/permalink/t3sitepackage:minimal-design@14.3)
it already contains a meta menu in the footer of the page.

To display a breadcrumb the [menu data processor](https://docs.typo3.org/m/typo3/reference-typoscript/14.3/en-us/DataProcessing/MenuProcessor/Index.html#MenuProcessor)
can be used with the special type [List](https://docs.typo3.org/m/typo3/reference-typoscript/14.3/en-us/DataProcessing/MenuProcessor/List.html#hmenu-special-list)
or [Directory](https://docs.typo3.org/m/typo3/reference-typoscript/14.3/en-us/DataProcessing/MenuProcessor/Directory.html#hmenu-special-directory).

The special menu type "List" allows you to specify a list of UIDs of pages that
should be displayed in the meta menu. The special menu type "Directory" allows
you to specify a folder or page of which all subpages should be displayed in
the menu. We take the second approach here.

## Menu of subpages TypoScript - the data processor {#meta-menu-typoscript}

**packages/my_site_package/Configuration/Sets/SitePackage/TypoScript/Navigation/footerMenu.typoscript**

```typoscript
page {
    10 {
        dataProcessing {
            40 = menu
            40 {
                as = footerMenu
                special = directory
                special.value = {$SitePackage.footerMenuRoot}
            }
        }
    }
}

```

Line 4: Each data processor must have a unique id. We used 10 for the
[page-content data processor](https://docs.typo3.org/permalink/t3sitepackage:page-content-data-processor@14.3)
and 20 for the [Main menu](https://docs.typo3.org/permalink/t3sitepackage:main-menu-creation@14.3) and 30 for the
[Breadcrumb](https://docs.typo3.org/permalink/t3sitepackage:breadcrumb)
therefore we now use 40.

Line 6: The values processed by the data processor should be stored in variable
`footerMenu`.

Line 7: We configure the menu to use the special type
[Directory](https://docs.typo3.org/m/typo3/reference-typoscript/14.3/en-us/DataProcessing/MenuProcessor/Directory.html#hmenu-special-directory).

Line 8: The folder which contains the pages to be displayed in the footer menu
can be configured via site settings. You can find the definition of this setting
in file `packages/my_site_package/Configuration/Sets/SitePackage/settings.definitions.yaml`.

## Menu of subpages - Fluid template {#meta-menu-fluid}

The special type `directory` delivers the items of the meta menu as an array.
Therefore we can use the [For ViewHelper \<f:for>](https://docs.typo3.org/other/typo3/view-helper-reference/14.3/en-us/Global/For.html#typo3fluid-fluid-for)
to loop through these elements:

**packages/my_site_package/Resources/Private/Templates/Partials/Navigation/FooterMenu.fluid.html**

```html
<f:if condition="{footerMenu}">
    <ul class="nav col-md-4 justify-content-end">
        <f:for each="{footerMenu}" as="menuItem">
            <li class="nav-item"><a href="{menuItem.link}" class="nav-link px-2 text-body-secondary">{menuItem.title}</a></li>
        </f:for>
    </ul>
</f:if>

```

The menu items can be displayed just as we have done in the
[Fluid partial of the main menu](https://docs.typo3.org/permalink/t3sitepackage:fluid-implement-main-menu@14.3).

As we do not need to highlight active pages in the footer menu we omit those
conditions.

## Switching to the menu type list {#meta-menu-list}

If it is more feasible for your project to list all pages that should be listed
in the meta menu, you can switch to using the special menu type "List" by
changing the TypoScript:

**packages/my_site_package/Configuration/Sets/SitePackage/settings.definitions.yaml (diff)**

```diff
 40 = menu
 40 {
     as = footerMenu
-    special = directory
+    special = list
     special.value = {$MySitePackage.footerMenuRoot}
 }
```

You can now change the setting to accept a comma separated list of integers
and then list all pages that should be displayed in the meta menu. For example:

**packages/my_site_package/Configuration/Sets/SitePackage/TypoScript/Navigation/footerMenu.typoscript (diff)**

```diff
 MySitePackage.footerMenuRoot:
   label: 'Footer menu root uid'
-  description: 'The subpages of this page are displayed in the footer'
+  description: 'These pages are displayed in the footer'
   category: MySitePackage.menus
-  type: int
+  type: stringlist
-  default: 2
+  default:
+    - 5
+    - 4
+    - 3
```

We are using the type [stringlist](https://docs.typo3.org/m/typo3/reference-coreapi/14.3/en-us/ApiOverview/SiteHandling/SiteSettingDefinitions.html#confval-site-setting-type-stringlist)
\- as of writing these lines - there is no integer list type in the settings yet.
