Joomla! World Conference 2026

Let your article shine in more than one category.

During Google Summer of Code 2026, I worked on a Joomla feature called Multi-Categories. The idea is: Every item in Joomla (article, contact, banner, news-feed) belongs to a main category and from now on it also can belong to other categories.

Until now, each item in Joomla is assigned to one Category. With tags it was possible to create a kind of fake-categories. Now multiple categories for one item are a native feature in Joomla.

Think about a travel website. An article called “Five places to visit in Egypt” may belong to category Egypt. But should also appear in categories Summer Trips, Food, Family Travel, or City Breaks.

No need anymore to create the same article more than once and no need to trick with tags.

With Additional Categories, the article can keep Egypt as its main category and also belong to Summer Trips, and Travel. The content stays in one place, but visitors can discover it through more than one category.

Diagram of an article named My Trip to the Pyramids assigned to Egypt as its main category and to Summer Trips and Travel as Additional Categories

What is new?

Every supported Joomla item still has one main category. This is the normal category that Joomla users already know. Nothing changes. The main category is the boss.

Additional Categories are extra category assignments. They do not replace the main category. They give the item more places where it can be found.

The feature supports:

  • Articles
  • Contacts
  • Banners
  • News Feeds

For example, a contact for a local sports club can have Sports as the main category. It can also belong to Children Trainer, Event Organisator and Community. Visitors can then find the same contact in the parts of the website that make sense for them.

A banner can have a main category called Products and an Additional Category called Summer Campaign. A News Feed can belong to Technology and Community News at the same time.

How to use? It's easy!

When you create or edit an item, you choose the main category as usual. Below this field, there is a new field called Additional Categories. You can select one or more extra categories and save the item.

For a travel article, the steps could look like this:

  • Create the categories Egypt, Summer Trips, and Family Travel.
  • Create a new article about visiting Hurghada.
  • Select Egypt as the main category.
  • Select Summer Trips and Family Travel as Additional Categories.
  • Save the article.

Article edit form showing the main category and Additional Categories selector

Maintain Additional Categories

Content managers also need an easy way to find items after they have added more categories. For this reason, Additional Categories are shown in the administrator lists for Articles, Contacts, Banners, and News Feeds.

Now, filtering items by a category shows every item assigned to it, whether it is the main or an additional category.

Joomla administrator Articles list showing filters and article rows with main and Additional Categories, including Typography assigned to Blog and Joomla

Understanding category item counts

The category list also gives more information about how a category is used.

For example, a category can show an item count like 10 (+5).

  • 10 means that 10 items use this category as their main category.
  • (+5) means that 5 more items use this category as an Additional Category.

This small detail can help administrators understand their content structure. A category may look unused at first, but the extra number can show that it is helping visitors find more content.

A category cannot be deleted, as long as it is used in items, no matter if it is used as main category or additional category.

Joomla administrator Articles Categories list showing item counts by category, with additional-category counts displayed in parentheses

A category line in article details

On the frontend, Joomla can show all visible categories in one line.

For example: Categories: Egypt, Summer Trips, Family Travel

This is easier for visitors to understand than showing a main category in one place and extra categories somewhere else.

Additional Categories also respect category access and published state. An item is shown through an Additional Category only when the visitor is allowed to view that category.

Frontend article details displaying all assigned categories in one category line

Custom fields can follow Additional Categories

Additional categories have another particular advantage. They allow custom fields to be passed on to items. 

For example, a website may have a custom field called “Best season to visit” for the Summer Trips category. An article can have Egypt as its main category and Summer Trips as an Additional Category. The article can then use the “Best season to visit” field.

This gives website administrators more flexibility. They do not need to move an article away from its main category just to use a field from another useful category.

Custom field assigned to the Summer Trips category

Article edit form showing custom fields inherited from Additional Categories

Article form displaying a custom field available through an Additional Category

Support for developers too: API

Additional Categories are fully integrated into the Joomla API. 

This is useful for developers who build mobile apps, connect Joomla to another service, or create their own Joomla tools.

The API can return Additional Categories and can create, update, or clear them. Updates are handled carefully, so an existing set of Additional Categories is not removed unless the request clearly asks Joomla to remove it.

What I learned during the summer

At the beginning of the project, I thought I would mostly add a new field to the item edit form. I soon learned that categories are connected to many parts of Joomla.

They are connected to administrator lists, filters, category blog pages, modules, custom fields, access levels, language strings, APIs, and tests.

What looked like one new field became a journey through many parts of Joomla.

One of the most useful things I learned was to read existing Joomla code before writing new code. Joomla has patterns for forms, models, views, language strings, and tests. Following these patterns helped the feature feel like part of Joomla instead of something separate.

Another change during the project was the name. At first, the feature was called “Secondary Categories”. After feedback and discussion, the visible name became Additional Categories. I think this name is easier and more natural for Joomla users.

Why I am excited about this feature

I believe Additional Categories can help many Joomla websites.

It can help a travel website organise articles by place, season, and audience. It can help a community website show the same contact in several useful sections. It can help a news website group the same story by topic without copying it.

Most importantly, it gives website owners more choices while keeping one main category clear.

The work is currently available in the GSoC project repository, and the core repository and is under review. It is not part of Joomla core yet.

I would be very happy to see Additional Categories become useful for the wider Joomla community.

Thank You

I would like to thank my mentors, Christiane and Viviana, for their guidance, reviews, patience, and support during the project.

I would also like to thank Benjamin for his support and helpful feedback throughout the project.

Google Summer of Code has been a valuable learning experience for me. I am thankful to the Joomla community for giving me the opportunity to contribute.

About the author

I'm always curious to learn something new and enjoy solving problems through programming. Open source gives me the chance to learn from others while building something useful together.

Joining Google Summer of Code with Joomla has been one of the best learning experiences for me, and I look forward to contributing even more in the future.

Some articles published on the Joomla Community Magazine represent the personal opinion or experience of the Author on the specific topic and might not be aligned to the official position of the Joomla Project

Comments