PHPackages                             stephenharris/guise - 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. [Admin Panels](/categories/admin)
4. /
5. stephenharris/guise

ActiveLibrary[Admin Panels](/categories/admin)

stephenharris/guise
===================

A framework for modifying the WP admin interface (adding columns, metaboxes etc)

0.4.0(9y ago)11.2kGPLPHP

Since Sep 15Pushed 9y ago1 watchersCompare

[ Source](https://github.com/stephenharris/guise)[ Packagist](https://packagist.org/packages/stephenharris/guise)[ RSS](/packages/stephenharris-guise/feed)WikiDiscussions master Synced 3w ago

READMEChangelogDependencies (6)Versions (5)Used By (0)

Guise
=====

[](#guise)

Guise is a WordPress framework for modifying the UI, it handles the behind-the-scenes interactions with WordPress so that you can focus on writing OOP code.

**This is early on in development, contributions are welcome - see the wish list below!**

Documentation
-------------

[](#documentation)

The documentation for using Guise can be found here:

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

[](#installation)

Guise is not yet published on Composer, so you need to add the repository manually:

```
{
    ...
    "repositories": [
        ...
        {
            "type": "vcs",
            "url": "https://github.com/stephenharris/guise"
        }
    ],

    ...

    "require": {
      "stephenharris/guise": "0.*"
    },

}

```

Then run `composer update`.

You will then need to load Composer's auto-loader in your application:

```
require 'vendor/autoload.php';

```

Example
-------

[](#example)

Adding a column to a post type
------------------------------

[](#adding-a-column-to-a-post-type)

To add a column to the 'foobar' post type, first define your column view it must implement the `Post_Type_Column_View` interface.

```
use StephenHarris\Guise\Columns\Post_Type_Column_View;

My_Foo_Bar_Column_View implements Post_Type_Column_View {

    function label() {
        return 'My column header';
    }

    function render( WP_Post $post ) {
        return sprintf( 'This is the cell for post %d', $post->ID );
    }
}

```

Then register your column:

```
$column_view = new My_Foo_Bar_Column_View();
$controller new Post_Type_Column_Controller()

$controller->register( $column_view, 'foo-bar' );

```

You can also specify the index you want the column to appear in:

```
//Adds to the second index (i.e. it appears as the third column)
$controller->register( $column_view, 'foobar', 2 );

```

Please note that later columns can shift it out of place.

Adding a sortable to a post type
--------------------------------

[](#adding-a-sortable-to-a-post-type)

To add a sortable column your column view class must implement the `Post_Type_Column_View` and `Sortable_Column_View` interfaces.

```
use StephenHarris\Guise\Columns\Post_Type_Column_View;
use StephenHarris\Guise\Columns\Sortable_Column_View;

My_Sortable_Foo_Bar_Column_View implements Post_Type_Column_View, Sortable_Column_View {

    function label() {
        return 'A sortable column';
    }

    function render( WP_Post $post ) {
        return sprintf( 'This is the cell for post %d', $post->ID );
    }

    function sort_by() {
        //Return the value of the orderby query parameter
        return 'query-variable';
    }
}

```

Bug or feature request?
-----------------------

[](#bug-or-feature-request)

Please open an [issue](https://github.com/stephenharris/guise/issues)!

Wishlist
--------

[](#wishlist)

- Metaboxes
- Settings

###  Health Score

28

—

LowBetter than 52% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity16

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity56

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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 ~17 days

Total

4

Last Release

3521d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/00d5900d269dab58816954d5db3d61ee200eec39565c8cb8f3caccd165b64441?d=identicon)[stephenharris](/maintainers/stephenharris)

---

Top Contributors

[![stephenharris](https://avatars.githubusercontent.com/u/3255034?v=4)](https://github.com/stephenharris "stephenharris (18 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/stephenharris-guise/health.svg)

```
[![Health](https://phpackages.com/badges/stephenharris-guise/health.svg)](https://phpackages.com/packages/stephenharris-guise)
```

PHPackages © 2026

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