PHPackages                             wp-papi/papi - 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. wp-papi/papi

ActiveWordpress-plugin

wp-papi/papi
============

WordPress Page Type API with custom fields

v3.2.0(8y ago)26229.8k26[5 issues](https://github.com/wp-papi/papi/issues)[4 PRs](https://github.com/wp-papi/papi/pulls)1MITPHPPHP ^5.6 || ^7.0

Since Dec 1Pushed 2y ago21 watchersCompare

[ Source](https://github.com/wp-papi/papi)[ Packagist](https://packagist.org/packages/wp-papi/papi)[ Docs](https://wp-papi.github.io)[ RSS](/packages/wp-papi-papi/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (3)Versions (111)Used By (1)

Papi
====

[](#papi)

[![Papi](https://cloud.githubusercontent.com/assets/14610/9073902/16a6d906-3b05-11e5-9287-5644a96e9a82.png)](https://cloud.githubusercontent.com/assets/14610/9073902/16a6d906-3b05-11e5-9287-5644a96e9a82.png)

[![Latest Version](https://camo.githubusercontent.com/2839926d886e56f1ed47ace3db74c6205046a1910f3cdecf1f9fbe3378a9be40/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f77702d706170692f706170692e7376673f7374796c653d666c6174)](https://github.com/wp-papi/papi/releases)[![License](https://camo.githubusercontent.com/8311364e88b57c768683fb3dc77675a350e4f1abd8bcc25e6faf6d002f748f70/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f77702d706170692f706170692e737667)](https://packagist.org/packages/wp-papi/papi)[![Gitter](https://camo.githubusercontent.com/c568ff64cbe92b2c776ed04aab5920d94d2ab323ead538e0f8989f6f6243d626/68747470733a2f2f6261646765732e6769747465722e696d2f77702d706170692f706170692e737667)](https://gitter.im/wp-papi/papi?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)[![No Maintenance Intended](https://camo.githubusercontent.com/d904056147052e22d8e1c7f46bb50293ed2aeb4c43ead9a2d0cf7a48b46d0562/687474703a2f2f756e6d61696e7461696e65642e746563682f62616467652e737667)](http://unmaintained.tech/)

> `master` is unsafe. `3.x` is the stable branch.

Papi has a different approach on how to work with fields and page types in WordPress. The idea is coming from how Page Type Builder in EPiServer works and has been loved by the developers.

So we though why don’t use the same approach in WordPress? Papi is today running in production and has been easy to work with when it came to add new fields. Papi don’t have any admin user interface where you should add all fields, we use classes in PHP, where one class represents one page type and in your class you add all fields you need. It’s that easy!

[Visit Papi’s project page](https://wp-papi.github.io/)

A message from the author
-------------------------

[](#a-message-from-the-author)

v3.2.0 will likely be the last release I plan to work on as the core maintainer of Papi since my focus has shifted from WordPress to doing more JavaScript and Go projects. I hope you understand my decision to step back from the project, if you have any questions or would be interested in take over some of the maintenance of the project please let me know. I will still be around answering questions and helping any new maintainers. Some bug fixes and/or pull request may be added (but no new versions) since me and my colleagues use Papi internally and will be continuing doing it.

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

[](#installation)

If you're using Composer to manage WordPress, add Papi to your project's dependencies. Run:

```
composer require wp-papi/papi
```

Or manually add it to your `composer.json`:

```
"require": {
  "php": "^^7.4",
  "wordpress": "^4.6",
  "wp-papi/papi": "^3.2"
}
```

Build CSS and JavaScript
------------------------

[](#build-css-and-javascript)

Install dependencies:

```
make deps

```

Build CSS:

```
make css

```

Build JavaScript:

```
make js

```

Testing
-------

[](#testing)

Visit the [readme](tests/README.md) file for testing.

Coding style
------------

[](#coding-style)

You can check if your contribution passes the styleguide by installing [PHP CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer) and running the following in your Papi directory:

```
make lint:php

```

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

[](#contributing)

Visit the [contributing](CONTRIBUTING.md) file.

Security
--------

[](#security)

If you discover a security vulnerability within this package, please send an e-mail to Fredrik Forsmo at . All security vulnerabilities will be promptly addressed.

License
-------

[](#license)

MIT © [Fredrik Forsmo](https://github.com/frozzare)

###  Health Score

45

—

FairBetter than 93% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity44

Moderate usage in the ecosystem

Community28

Small or concentrated contributor base

Maturity75

Established project with proven stability

 Bus Factor1

Top contributor holds 98.3% 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 ~35 days

Recently: every ~560 days

Total

87

Last Release

1140d ago

Major Versions

v2.4.15 → v3.0.62016-04-14

v2.4.16 → v3.0.82016-05-17

v2.4.17 → v3.0.92016-05-25

v2.4.18 → v3.0.102016-06-20

2.x-dev → v3.1.02016-06-27

PHP version history (6 changes)v1.0.0PHP &gt;=5.3.0

v1.2.5PHP &gt;=5.3

v2.0.0PHP &gt;=5.4.7

v3.0.0-beta1PHP ^5.5.9 || ^7.0

v3.2.0PHP ^5.6 || ^7.0

3.x-devPHP ^5.6 || ^7.0 || ^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/aacdbaebed26ea1ccdb7e37e2bfd2a572350e1d781d1c0b8830d444adb86104e?d=identicon)[frozzare](/maintainers/frozzare)

---

Top Contributors

[![frozzare](https://avatars.githubusercontent.com/u/14610?v=4)](https://github.com/frozzare "frozzare (4083 commits)")[![rasmusbe](https://avatars.githubusercontent.com/u/2124386?v=4)](https://github.com/rasmusbe "rasmusbe (26 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (16 commits)")[![vinkla](https://avatars.githubusercontent.com/u/499192?v=4)](https://github.com/vinkla "vinkla (12 commits)")[![nlemoine](https://avatars.githubusercontent.com/u/2526939?v=4)](https://github.com/nlemoine "nlemoine (6 commits)")[![s3rgiosan](https://avatars.githubusercontent.com/u/499982?v=4)](https://github.com/s3rgiosan "s3rgiosan (2 commits)")[![gitter-badger](https://avatars.githubusercontent.com/u/8518239?v=4)](https://github.com/gitter-badger "gitter-badger (2 commits)")[![zombiefredrik](https://avatars.githubusercontent.com/u/187018?v=4)](https://github.com/zombiefredrik "zombiefredrik (1 commits)")[![jordan-trahanov](https://avatars.githubusercontent.com/u/7109106?v=4)](https://github.com/jordan-trahanov "jordan-trahanov (1 commits)")[![KristoferN](https://avatars.githubusercontent.com/u/497686?v=4)](https://github.com/KristoferN "KristoferN (1 commits)")[![Log1x](https://avatars.githubusercontent.com/u/5745907?v=4)](https://github.com/Log1x "Log1x (1 commits)")[![mykhailo-petrenko](https://avatars.githubusercontent.com/u/3044313?v=4)](https://github.com/mykhailo-petrenko "mykhailo-petrenko (1 commits)")

---

Tags

custom-fieldsmodulespage-typewordpresswordpress-optionswordpress-pluginwordpresspageoptionscustom fieldstaxonomypage type

###  Code Quality

TestsBehat

### Embed Badge

![Health badge](/badges/wp-papi-papi/health.svg)

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

###  Alternatives

[wpmetabox/meta-box

The most powerful &amp; comprehensive plugin to create, manage, show and connect dynamic data with forms and custom fields effortlessly on WordPress.

1.2k20.5k3](/packages/wpmetabox-meta-box)[gambitph/titan-framework

Titan Framework allows theme and plugin developers to create admin pages, options, meta boxes, and theme customizer options with just a few simple lines of code.

37716.2k](/packages/gambitph-titan-framework)[devgeniem/better-wp-db-error

Better WordPress database error handling.

1161.3k](/packages/devgeniem-better-wp-db-error)

PHPackages © 2026

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