Title: Parentless Categories
Author: Scott Reilly
Published: <strong>June 12, 2009</strong>
Last modified: April 21, 2025

---

Search plugins

![](https://ps.w.org/parentless-categories/assets/banner-772x250.png?rev=835971)

![](https://ps.w.org/parentless-categories/assets/icon-128x128.png?rev=976009)

# Parentless Categories

 By [Scott Reilly](https://profiles.wordpress.org/coffee2code/)

[Download](https://downloads.wordpress.org/plugin/parentless-categories.2.3.1.zip)

 * [Details](https://co.wordpress.org/plugins/parentless-categories/#description)
 * [Reviews](https://co.wordpress.org/plugins/parentless-categories/#reviews)
 *  [Installation](https://co.wordpress.org/plugins/parentless-categories/#installation)
 * [Development](https://co.wordpress.org/plugins/parentless-categories/#developers)

 [Support](https://wordpress.org/support/plugin/parentless-categories/)

## Description

This plugin provides a template tag which acts as a modified version of WordPress’s
built-in template tag, `the_category()`. `the_category()` lists all categories directly
assigned to the specified post. `c2c_parentless_categories()` lists those categories,
except for categories that are parents to other assigned categories.

For example, assume your category structure is hierarchical and looks like this:

    ```
    Vegetables
    |-- Leafy
    |   |-- Broccoli
    |   |-- Bok Choy
    |   |-- Celery
    |-- Fruiting
    |   |-- Bell Pepper
    |   |-- Cucumber
    |   |-- Pumpkin
    |-- Podded
    |   |-- Chickpea
    |   |-- Lentil
    |   |-- Soybean
    ```

If you directly assigned the categories “Fruiting”, “Cucumber”, and “Pumpkin” to
a post, `c2c_parentless_categories()` would return a list that consists of: “Cucumber”,
and “Pumpkin”. Notice that since “Fruiting” was a parent to a directly assigned 
category, it is not included in the list.

By default, categories are listed as an HTML list. The first argument to the template
tag allows you to define a custom separator, e.g. to have a simple comma-separated
list of categories: `<?php c2c_parentless_categories( ',' ); ?>`.

As with categories listed via `the_category()`, categories that are listed are presented
as links to the respective category’s archive page.

Example usage (based on preceding example):

 * `<?php c2c_parentless_categories(); ?>`

Outputs something like:

    ```
    <ul><li><a href="http://yourblog.com/category/fruiting/cucumber">Cucumber</a></li>
    <li><a href="http://yourblog.com/category/fruiting/pumpkin">Pumpkin</a></li></ul>
    ```

 * `<?php c2c_parentless_categories( ',' ); ?></ul>`

Outputs something like:

    ```
    <a href="http://yourblog.com/category/fruiting/cucumber">Cucumber</a>, <a href="http://yourblog.com/category/fruiting/pumpkin">Pumpkin</a>
    ```

Links: [Plugin Homepage](https://coffee2code.com/wp-plugins/parentless-categories/)
| [Plugin Directory Page](https://wordpress.org/plugins/parentless-categories/) 
| [GitHub](https://github.com/coffee2code/parentless-categories/) | [Author Homepage](https://coffee2code.com)

### Developer Documentation

Developer documentation can be found in [DEVELOPER-DOCS.md](https://github.com/coffee2code/parentless-categories/blob/master/DEVELOPER-DOCS.md).
That documentation covers the template tags and hooks provided by the plugin.

As an overview, these are the template tags provided by the plugin:

 * `c2c_parentless_categories()` : Outputs the parentless categories.
 * `c2c_get_parentless_categories_list()` : Returns the list of parentless categories.
 * `c2c_get_parentless_categories()` : Returns the list of parentless categories
   for the specified post.

These are the hooks provided by the plugin:

 * `c2c_parentless_categories` _(action)_, `c2c_get_parentless_categories_list`,`
   c2c_get_parentless_categories` _(filters)_ :
    Allows for an alternative approach
   to safely invoke each of the identically named functions in such a way that if
   the plugin were deactivated or deleted, then your calls to the functions won’t
   cause errors on your site.
 * `c2c_parentless_categories_list` _(filter)_ :
    Customizes the return value of
   the `c2c_parentless_categories_list()` function.
 * `c2c_get_parentless_categories_omit_ancestors` _(filter)_ :
    Customizes the function
   argument indicating if ancestor categories of all directly assigned categories(
   even if directly assigned themselves) should be omitted from the return list 
   of categories.

## Installation

 1. Install via the built-in WordPress plugin installer. Or install the plugin code
    inside the plugins directory for your site (typically `/wp-content/plugins/`).
 2. Activate the plugin through the ‘Plugins’ admin menu in WordPress
 3. Optional: Add filters for ‘c2c_parentless_categories_list’ to filter parentless
    category listing
 4. Use the template tag `<?php c2c_parentless_categories(); ?>` in a theme template
    somewhere inside “the loop”

## FAQ

### Why isn’t an assigned category for the post showing up in the `c2c_parentless_categories()` listing?

If an assigned category is the parent for one or more other assigned categories 
for the post, then the category parent is not included in the listing.

### Does this plugin have unit tests?

Yes. The tests are not packaged in the release .zip file or included in plugins.
svn.wordpress.org, but can be found in the [plugin’s GitHub repository](https://github.com/coffee2code/parentless-categories/).

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Parentless Categories” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Scott Reilly ](https://profiles.wordpress.org/coffee2code/)

[Translate “Parentless Categories” into your language.](https://translate.wordpress.org/projects/wp-plugins/parentless-categories)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/parentless-categories/),
check out the [SVN repository](https://plugins.svn.wordpress.org/parentless-categories/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/parentless-categories/)
by [RSS](https://plugins.trac.wordpress.org/log/parentless-categories/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 2.3.1 (2025-04-20)

 * Change: Note compatibility through WP 6.8+
 * Change: Note compatibility through PHP 8.3+
 * Change: Update copyright date (2025)
 * Unit tests:
    - Change: Explicitly define return type for overridden method

#### 2.3 (2024-08-28)

Highlights:

This minor release prevents translations from containing unintended markup, notes
compatibility through WP 6.6+, removes unit tests from release packaging, and updates
copyright date (2024).

Details:

 * Change: Prevent translations from containing unintended markup
 * Change: Add missing inline comment for translators
 * Change: Note compatibility through WP 6.6+
 * Change: Update copyright date (2024)
 * Change: Remove development and testing-related files from release packaging
 * New: Add `.gitignore` file
 * Unit tests:
    - Allow tests to run against current versions of WordPress
    - New: Add `composer.json` for PHPUnit Polyfill dependency
    - Hardening: Prevent direct web access to `bootstrap.php`
    - Change: In bootstrap, store path to plugin directory in a constant
    - New: Add tests for `c2c_parentless_categories()`
    - New: Add tests for function invocation filters
    - Change: Tweak some inline comment formatting

#### 2.2.1 (2023-05-20)

 * Change: Note compatibility through WP 6.3+
 * Change: Update copyright date (2023)

_Full changelog is available in [CHANGELOG.md](https://github.com/coffee2code/parentless-categories/blob/master/CHANGELOG.md)._

## Meta

 *  Version **2.3.1**
 *  Last updated **12 months ago**
 *  Active installations **10+**
 *  WordPress version ** 4.6 or higher **
 *  Tested up to **6.8.5**
 *  Language
 * [English (US)](https://wordpress.org/plugins/parentless-categories/)
 * Tags
 * [categories](https://co.wordpress.org/plugins/tags/categories/)[category](https://co.wordpress.org/plugins/tags/category/)
   [coffee2code](https://co.wordpress.org/plugins/tags/coffee2code/)[list](https://co.wordpress.org/plugins/tags/list/)
   [the_category](https://co.wordpress.org/plugins/tags/the_category/)
 *  [Advanced View](https://co.wordpress.org/plugins/parentless-categories/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/parentless-categories/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/parentless-categories/reviews/)

## Contributors

 *   [ Scott Reilly ](https://profiles.wordpress.org/coffee2code/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/parentless-categories/)

## Donate

Would you like to support the advancement of this plugin?

 [ Donate to this plugin ](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=6ARCFJ9TX3522)