Implementation of taxonomies into Lumberjack
- PHP 8.0 or greater
- Composer
- Lumberjack
composer require agence-adeliom/lumberjack-taxonomy
# Copy the configuration file
cp vendor/agence-adeliom/lumberjack-taxonomy/config/taxonomies.php web/app/themes/YOUR_THEME/config/taxonomies.php
'providers' => [
...
\Adeliom\Lumberjack\Taxonomy\CustomTaxonomyServiceProvider::class
]
<?php
namespace App\Taxonomies;
use Adeliom\Lumberjack\Taxonomy\Term as BaseTerm;
class Project extends BaseTerm
{
/**
* Return the key used to register the taxonomy with WordPress
* First parameter of the `register_taxonomy` function:
* https://developer.wordpress.org/reference/functions/register_taxonomy/
*
* @return string|null
*/
public static function getTaxonomyType(): ?string
{
return 'project';
}
/**
* Return the object type which use this taxonomy.
* Second parameter of the `register_taxonomy` function:
* https://developer.wordpress.org/reference/functions/register_taxonomy/
*
* @return array|null
*/
public static function getTaxonomyObjectTypes(): ?array
{
return ['post'];
}
/**
* Return the config to use to register the taxonomy with WordPress
* Third parameter of the `register_taxonomy` function:
* https://developer.wordpress.org/reference/functions/register_taxonomy/
*
* @return array|null
*/
protected static function getTaxonomyConfig(): ?array
{
return array(
'labels' => [
'name' => 'Projects',
'new_item_name' => 'New project'
],
'public' => true,
'show_in_rest' => true,
'hierarchical' => false,
);
}
}
Register the term into your config file web/app/themes/YOUR_THEME/config/taxonomies.php
:
return [
'register' => [
...
App\Taxonomies\Project::class
],
];
Lumberjack Taxonomy is released under the MIT License.