Joomla custom fields allow you to turn a regular article, category, contact, or user profile into a structured record: add an event date, price, specifications, link, images, option list, and other data. You don't necessarily need to install a separate CCK component — the core custom fields system is built into Joomla and managed by the com_fields component.

Fields first appeared in Joomla 3.7, but the system has changed significantly since then. In Joomla 4, the legacy repeatable field was replaced with the more flexible Subform field. In Joomla 5, the interface and display options were redesigned. Joomla 6.0 introduced the Number and Note fields, while Joomla 6.1 added separate media field variants for audio, video, and documents.

In brief
Joomla 5 includes 16 built-in custom field types. Joomla 6.0 adds Number and Note types, and Joomla 6.1 introduces Audio, Video, and Document variants. The set may be larger if third-party fields plugins are installed.

What Are Fields and How Are They Used?

Fields (the com_fields component) is a core Joomla component for creating, grouping, assigning, and storing custom fields. The input form and value formatting for each type are handled by plugins in the fields group.

In the standard installation, fields can be added to the following objects:

  • Content: articles and article categories.
  • Contacts: contacts, contact categories, and the contact email form.
  • Users: user accounts and, with appropriate settings, the registration and profile editing forms.

Third-party extensions can also integrate with com_fields and create their own contexts.

Don't confuse two different settings
A field can be assigned to articles in specific categories, or you can create a field for the categories themselves. In the first case, the value is filled in each article. In the second, it's set once in the category parameters.

What Field Types Are Available in Joomla 5 and 6?

Table: Field Types in Joomla Versions
JoomlaCountWhat's New
5.x 16 Calendar, Checkboxes, Color, Editor, Integer, List, Imagelist, Media, Radio, SQL, Subform, Text, Textarea, URL, User, and Usergrouplist.
6.0 18 Added "Number" with decimal values and formatting, and "Note" for instructions within the form.
6.1 21 The media plugin received separate "Audio", "Video", and "Document" types.

In older articles about Joomla 3.7, you'll often see Email, Telephone, and Timezone fields. These are not present in the current standard custom field set of Joomla 5/6. For email addresses, the "Text" field with appropriate filtering or a third-party field type is typically used. Timezone and telephone can also be stored as text or implemented via a separate plugin.

Why the count may differ
The type list shows published plugins in the fields group. If a needed type is missing, check System → Manage → Plugins and filter plugins by the "Fields" type. If there are more types, they were added by an installed extension.

How to Create a Field for a Joomla Article

  1. Open Content → Fields.
  2. In the context filter, ensure Articles is selected, not categories.
  3. Click New and choose the field type.
  4. Specify the title, system name, description, and type-specific parameters.
  5. If needed, select a field group and the article categories where the field should be available.
  6. On the parameters tab, configure the input form and frontend display.
  7. Publish the field and open an article in the appropriate category. The field will appear on its group's tab or the general Fields tab.

It's best to set the field name in Latin characters from the start, e.g., event-date, price, or speaker. It's convenient for referencing in template overrides and remains understandable even after changing the title.

Field Groups: Why Are They Needed?

A group combines related fields and creates a separate tab for them in the edit form. For example, for a course catalog, you could create groups like "Pricing", "Schedule", and "Instructor".

  • Fields without a group appear on the general Fields tab.
  • The order of groups and fields can be changed by drag-and-drop or order values.
  • For a group, you can configure state, access level, language, and permissions.
  • A group organizes the interface but does not change how values are stored.

Fields for Joomla Categories

In Joomla 5 and Joomla 6, fields can be created not only for articles but also for categories. This is useful when each category needs its own data: a banner, subtitle, branch coordinates, design color, additional description, document link, or responsible person's name.

How to Create a Category Field?

  1. Go to Content → Fields.
  2. In the context dropdown, select Categories. In some admin menu configurations, there is a direct Content → Category Fields option.
  3. Create the field and configure it the same way as an article field.
  4. Open Content → Categories and edit the desired category.
  5. Fill in the value on the field group tab or the Fields tab.

Important about inheritance
The category field value is not copied to its articles and is not automatically inherited by child categories. This is data for the current category only. If the value should appear in each article, it must be retrieved from the category object in a template override or by using a separate article field.

Where Are Category Fields Displayed?

Automatic display depends on the component view, field position, and whether the template supports content events. For precise placement — such as next to the category title or inside a category card — it's more reliable to create a com_content layout override.

Practical use cases:

  • Branch catalog: address, phone, coordinates, and working hours stored in the branch category;
  • Catalog sections: a separate banner, icon, and color for each category;
  • Documentation: product version, download link, and section responsible person;
  • Events: common venue or organizer for all articles in the category.

Common Custom Field Parameters

Individual setting names may vary slightly between translations and between Joomla 5 and Joomla 6, but the logic remains the same.

Basic Parameters

  • Title: the field name in the administrative list.
  • Type: the field type; the list of settings may change depending on your selection.
  • Name: a unique machine identifier for code and layouts.
  • Label: the label next to the value in the form if enabled.
  • Description: an explanation for the content editor.
  • Required: prevents saving the object without a value.
  • Only in Subform: hides the standalone field and allows it to be used as a Subform element.
  • Default value: the initial value for new objects.
  • Status: allows publishing, unpublishing, archiving, or trashing.
  • Field group: the tab where the field will appear during editing.
  • Category: restricts the field to one or more content categories.

Info
Depending on the chosen field type, the number of parameters will increase, with unique settings for each type.

Form Options Parameters

  • Placeholder: the placeholder text inside the empty element.
  • Field Class: CSS classes for the edit form.
  • Label Class (Form): CSS classes for the label tag in the edit form.
  • Editable In: site, administrator panel, or entire site.
  • Showon attribute: conditional display of the field based on the value of another field.

Display Options

  • Display Class: CSS classes for display on the site.
  • Value Class: CSS classes for the field value on the site.
  • Label: show or hide the field label.
  • Label Class (Output): CSS classes for the label tag on the site.
  • Automatic Display: after the content title, before the content block, after the content block, or do not display automatically.
  • Prefix and Suffix: text before and after the value, e.g., from and USD.
  • Layout: standard or overridden field layout.
  • Display When Read-Only: behavior for a non-editable field.
  • Search index: whether to include the value in the Smart Search index and how.

Recommendation
If the site design must be strictly predictable, choose "Do not display automatically" and output fields by system name in a template override. Automatic positions are convenient for simple sites but offer less control over markup.

Detailed Description of Field Types

Calendar (calendar)

A field for selecting a date or date and time from a calendar. Suitable for date of birth, event date, expiration date, document publication date, or deadline.

  • you can enable or disable time;
  • customizable date display format;
  • the value can be limited by minimum and maximum date;
  • a "Today" button and filling with the current date are available, depending on the version settings.

The storage format and display format are not the same. For sorting and programmatic processing, use the raw value; for visitors, use the formatted one.

Checkboxes (checkboxes)

A set of independent checkboxes allowing multiple selections. For each option, you set a display text and a stored value.

Suitable for product options, available delivery methods, room features, or service lists. Values must be unique and stable: changing the stored value after filling articles can break existing data.

Colour (color)

Opens a graphical palette and saves a color, usually in HEX format, e.g., #0d6efd. Useful for category color, marker, card background, or infographic element.

Safe output
Do not insert arbitrary values directly into the style attribute without validation. In a custom template, ensure the value matches a valid color format.

Editor (editor)

A full WYSIWYG editor area for formatted HTML. You can configure width, height, button set, and content filtering.

Use for an additional formatted block: technical description, terms and conditions, author biography. For short characteristics, choose "Text" or "Textarea": they are simpler, safer, and produce more predictable markup.

Integer (integer)

Creates a list of integers within a specified range. You can set the first and last value, step, and multi-select option.

This is not a regular string for entering numbers: Joomla generates a sequence of options. Useful for number of rooms, year, age, rating from 1 to 5, or fixed step values.

Number (number)

A field for entering integer and decimal numbers. Unlike "Integer", the user enters a value rather than selecting from a pre-generated list.

  • supports minimum and maximum values;
  • allows setting a decimal step, e.g., 0.01;
  • supports negative numbers;
  • can format the value as currency or add a symbol before or after the number;
  • allows specifying the number of decimal places.

Suitable for price, weight, temperature, area, percentage, and any measurable characteristics.

List (list)

A dropdown list with predefined options. Can allow single or multiple selections. For each item, you set a display text and a stored value.

A list saves form space and is suitable for status, object type, district, manufacturer, or any characteristic with a limited set of options. If the editor needs to see all options constantly, "Checkboxes" or "Radio" are more convenient.

List of Images (imagelist)

Displays images from a specified directory and allows selecting one or multiple. You can restrict the folder, include subdirectories, and set an image CSS class.

This type is useful when files are pre-uploaded and the editor must choose only from a prepared set: icons, logos, diagrams, or cover variants. For free upload via the Media Manager, use "Media".

Media (media)

Opens the Joomla Media Manager and allows selecting or uploading an image, if the user has appropriate permissions. The field can store not only the path but also additional image data, so when developing a template, do not assume without checking that the value is a simple string.

  • you can restrict the allowed directory;
  • parameters for alt text and CSS class are available;
  • allowed extensions and upload capability also depend on Media Manager settings and user permissions.

Starting from Joomla 5.3, file and media fields default to the /files directory unless another path is specified in the parameters. After updating your site, check custom directories and overrides.

Audio (media_audio)

A specialized media field variant for audio files. On the site, the value is output through an HTML5 <audio> element. Suitable for podcasts, audio guides, pronunciation examples, and music clips.

The actual ability to upload a file depends on allowed MIME types, extensions, and file size in the Media Manager and web server settings.

Video (media_video)

Allows selecting a video file and displaying it with an HTML5 <video> player. This field is intended for local media files. For YouTube, Vimeo, and other external services, it's often more convenient to store the URL or video ID and create a custom output layout.

Document (media_document)

Intended for PDFs, spreadsheets, archives, and other allowed documents. On the site, it typically generates a link to the file. Used for price lists, instructions, attachments, certificates, and downloadable materials.

Check access
The field access level controls display, but the file itself in a public directory may remain accessible via a direct link. Confidential documents require a separate secure file delivery system.

Note (note)

An informational block inside the form. It is not intended for entering an individual value: with it, the administrator adds a heading, instruction, explanation, or warning between other fields.

  • you can set a heading, text, CSS class, and heading level;
  • the alert alert-info class creates a standard Bootstrap informational block;
  • you can add a close button;
  • optionally, the note can be displayed on the site.

This is a convenient way to split a long form and explain to the editor how to fill in the next set of fields.

Radio (radio)

A group of radio buttons for selecting exactly one option. Suitable for a small set of mutually exclusive values: "Y