Descripció
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 | Plugin Directory Page | GitHub | Author Homepage
Developer Documentation
Developer documentation can be found in 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 thec2c_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.
Instal·lació
- Install via the built-in WordPress plugin installer. Or install the plugin code inside the plugins directory for your site (typically
/wp-content/plugins/
). - Activate the plugin through the ‘Plugins’ admin menu in WordPress
- Optional: Add filters for ‘c2c_parentless_categories_list’ to filter parentless category listing
- Use the template tag
<?php c2c_parentless_categories(); ?>
in a theme template somewhere inside “the loop”
PMF
-
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 include 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.
Ressenyes
No hi ha ressenyes per a aquesta extensió.
Col·laboradors i desenvolupadors
«Parentless Categories» és programari de codi obert. La següent gent ha col·laborat en aquesta extensió.
Col·laboradorsTraduïu «Parentless Categories» a la vostra llengua.
Interessats en el desenvolupament?
Navegueu pel codi, baixeu-vos el repositori SVN, o subscriviu-vos al registre de desenvolupament per fisl de subscripció RSS.
Registre de canvis
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)
2.2 (2021-10-22)
Highlights:
This minor release removes support for long-deprecated functions (parentless_categories()
, get_parentless_categories_list()
, get_parentless_categories()
), adds DEVELOPER-DOCS.md, notes compatibility through WP 5.8+, and minor reorganization and tweaks to unit tests.
Details:
- Change: Remove long-deprecated functions
parentless_categories()
,get_parentless_categories_list()
, andget_parentless_categories()
- New: Add DEVELOPER-DOCS.md and move template tag and hooks documentation into it
- Change: Tweak installation instruction
- Change: Note compatibility through WP 5.8+
- Unit tests:
- Change: Restructure unit test directories
- Change: Move
phpunit/
intotests/phpunit/
- Change: Move
phpunit/bin/
intotests/
- Change: Move
- Change: Remove ‘test-‘ prefix from unit test file
- Change: In bootstrap, store path to plugin file constant
- Change: In bootstrap, add backcompat for PHPUnit pre-v6.0
- Change: Restructure unit test directories
Full changelog is available in CHANGELOG.md.