PHPackages                             builtnorth/extended-cpts-extras - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. builtnorth/extended-cpts-extras

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

builtnorth/extended-cpts-extras
===============================

Additional functionality and features for johnbillion/extended-cpts

v1.2.1(8mo ago)3265GPL-2.0-or-laterPHPPHP &gt;=8.0CI passing

Since Oct 3Pushed 2w agoCompare

[ Source](https://github.com/builtnorth/extended-cpts-extras)[ Packagist](https://packagist.org/packages/builtnorth/extended-cpts-extras)[ RSS](/packages/builtnorth-extended-cpts-extras/feed)WikiDiscussions main Synced 3w ago

READMEChangelog (5)Dependencies (4)Versions (7)Used By (0)

Extended CPTs Extras
====================

[](#extended-cpts-extras)

Extended CPTs Extras is a companion package for the [Extended CPTs](https://github.com/johnbillion/extended-cpts) library, providing additional functionality for managing post types in WordPress.

Features
--------

[](#features)

1. **Featured Image Column Width**: Customize the width of the featured image column in the admin list view.
2. **Remove Meta Boxes**: Easily remove unwanted meta boxes from the post edit screen (useful for Gutenberg).
3. **Register Meta**: Register custom meta fields for your post types with support for the REST API.
4. **Register Block Bindings**: Register custom block binding sources for dynamic content in blocks.
5. **Modify Existing Post Types**: Add additional features to existing post types. Note that the the below features work correctly out of the box on the Extended CPTs package when registeting a **new** post type. It is only necessary to use the `extended_post_type_modify_existing()` function when modifying an **existing** post type. Theses features include:

    - Custom templates
    - Template locking
    - Menu position
    - Menu icon

Installation
------------

[](#installation)

1. Require the package in your `composer.json`:

    ```
    {
    	"require": {
    		"builtnorth/extended-cpts-extras": "^1.0"
    	}
    }
    ```
2. Run `composer install` or `composer update`.

Usage
-----

[](#usage)

### Use the `extended_post_type_extras()` function to apply extra configurations to post types:

[](#use-the-extended_post_type_extras-function-to-apply-extra-configurations-to-post-types)

```
extended_post_type_extras(['post', 'page'], [
	'featured_image_column_width' => 80,
	'remove_meta_boxes' => ['postcustom', 'commentstatusdiv'],
	'register_meta' => [
		'my_custom_field' => [
			'type' => 'string',
			'description' => 'A custom field for this post type',
			'single' => true,
			'show_in_rest' => true,
		],
	],
	'register_block_bindings' => [
		'my_custom_source' => [
			'label' => 'My Custom Source',
			'get_value_callback' => function($source_args, $block_instance) {
				// Return dynamic content based on source_args
				return get_post_meta($block_instance->context['postId'], $source_args['key'], true);
			},
			'uses_context' => ['postId', 'postType'],
		],
	]
]);
```

### Use function `extended_post_type_modify_existing()` function to modify existing post types:

[](#use-function-extended_post_type_modify_existing-function-to-modify-existing-post-types)

```
extended_post_type_modify_existing('post', [
	'menu_icon' => 'dashicons-index-card',
	'menu_position' => 30,
	'template' => [
		['core/image', []],
	],

]);
```

Functions
---------

[](#functions)

### extended\_post\_type\_extras($post\_types, $options)

[](#extended_post_type_extraspost_types-options)

Apply extra configurations to specified post types.

Parameters:

- `$post_types`: String or array of post type names
- `$options`: Array of configuration options
    - `featured_image_column_width`: Set width for featured image column
    - `remove_meta_boxes`: Array of meta box IDs to remove
    - `register_meta`: Array of meta fields to register
    - `register_block_bindings`: Array of block binding sources to register

### extended\_post\_type\_modify\_existing($post\_types, $options)

[](#extended_post_type_modify_existingpost_types-options)

Modify existing post types with additional features that are not available in the original Extended CPTs package. This function allows you to apply certain options to existing post types that normally only work when registering a new post type with `register_extended_post_type()`. Specifically, it enables you to modify the following attributes for existing post types:

- `$post_types`: String or array of post type names
- `$options`: Array of configuration options
    - `template`: Custom template for the post type
    - `template_lock`: Lock the template to prevent changes
    - `menu_position`: Set the menu position
    - `menu_icon`: Set the menu icon

Contributing
------------

[](#contributing)

Contributions are welcome. Please feel free to submit a Pull Request.

License
-------

[](#license)

This package is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).

###  Health Score

41

—

FairBetter than 87% of packages

Maintenance81

Actively maintained with recent releases

Popularity17

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 95% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~95 days

Total

5

Last Release

247d ago

PHP version history (2 changes)v1.0.0PHP &gt;=8.1

v1.2.1PHP &gt;=8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/4ea760d2fc869dfda680e0bd6dce422606e91d6a1687938a8ebc38a0c29ca343?d=identicon)[dannorthern](/maintainers/dannorthern)

---

Top Contributors

[![dannorthern](https://avatars.githubusercontent.com/u/157666970?v=4)](https://github.com/dannorthern "dannorthern (38 commits)")[![actions-user](https://avatars.githubusercontent.com/u/65916846?v=4)](https://github.com/actions-user "actions-user (2 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/builtnorth-extended-cpts-extras/health.svg)

```
[![Health](https://phpackages.com/badges/builtnorth-extended-cpts-extras/health.svg)](https://phpackages.com/packages/builtnorth-extended-cpts-extras)
```

###  Alternatives

[silverstripe/userforms

UserForms enables CMS users to create dynamic forms via a drag and drop interface and without getting involved in any PHP code

1321.1M83](/packages/silverstripe-userforms)[rmrevin/yii2-favicon-widget

Favicon widget for Yii2

1565.5k](/packages/rmrevin-yii2-favicon-widget)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
