Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/luizbills/better-wordpress-admin-api
A better way to build settings pages for your plugins/themes.
https://github.com/luizbills/better-wordpress-admin-api
wordpress wordpress-admin wordpress-admin-options wordpress-admin-panel wordpress-development wordpress-php-library wordpress-plugin-development wordpress-theme-development
Last synced: 28 days ago
JSON representation
A better way to build settings pages for your plugins/themes.
- Host: GitHub
- URL: https://github.com/luizbills/better-wordpress-admin-api
- Owner: luizbills
- License: gpl-2.0
- Created: 2018-01-29T00:58:24.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2023-02-02T12:04:58.000Z (almost 2 years ago)
- Last Synced: 2024-05-01T14:12:44.325Z (6 months ago)
- Topics: wordpress, wordpress-admin, wordpress-admin-options, wordpress-admin-panel, wordpress-development, wordpress-php-library, wordpress-plugin-development, wordpress-theme-development
- Language: PHP
- Homepage:
- Size: 1.83 MB
- Stars: 78
- Watchers: 9
- Forks: 9
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-wp-developer-tools - Better WordPress Admin API - A better way to build admin pages and options for you plugins/themes. (WordPress Plugins)
README
# Better WordPress Admin API
A better way to build admin pages and options for you plugins/themes.
## Installation
Clone or download this repo and put inside of your theme/plugin
```
cd wp-content/plugins/my-plugin
git clone https://github.com/luizbills/better-wordpress-admin-api/
```Include the `framework/init.php` file in your plugin or `functions.php`
```php
include_once 'path/to/better-wordpress-admin-api/framework/init.php';
```## Usage
```php
// page details
$page_args = [
'menu_name' => 'Your Page',// page slug
'id' => 'your-page-id',// automatically prefix all field ids
'prefix' => 'your_prefix_',// use "parent" parameter to create as a sub-menu
//'parent' => 'themes.php',// more options...
//'icon' => 'dashicons-admin-post',
//'position' => 10,
//'capability' => 'manage_options',
];// create the page
$your_page = wp_create_admin_page( $page_args );// add fields
// field details
$field_args = [
'type' => 'text',
'id' => 'your_text_field',
'label' => 'Your Text field',
'desc' => 'Your field description. **You can use markdown here**.',
'props' => [
// optional tag properties
'placeholder' => 'type something...'
],
//'default' => 'hello world',
];// creates a text field
$your_page->add_field( $field_args );
```Generates:
![basic usage example page](docs/assets/page-usage-example.png)
```php
// get your page instance
$your_page = wp_get_page_instance( 'your-page-id' );// get a field value
$your_text_value = $your_page->get_field_value( 'your_text_field' );// or with your prefix used above on $page_details (but it is not necessary)
$your_text_value = $your_page->get_field_value( 'your_prefix_your_text_field' );// or just put all together
$your_text_value = wp_get_page_field_value( 'your-page-id', 'your_text_field' );
```More at [examples](/examples) folder.
### Avaliable field types
- `text` (text-based inputs: text, email, url, ...)
- `select`
- `checkbox` (single checkbox)
- `checkbox_multi` (multiple checkboxes)
- `radio`
- `hidden` (for **input[type="hidden"]**)
- `code` (code editor powered by [ace](https://ace.c9.io/))
- `html` (useful to create your own field template)
- `color` (color picker)
- `content` (default WordPress TinyMCE editor)## Documentation
- [Getting started](docs/getting-started.md)
- [Field Types](docs/field-types.md)## Roadmap
- [x] ~~Color picker~~
- [x] ~~TinyMCE editor~~
- [x] ~~Fields Documentation~~
- [x] ~~Multiple checkboxes~~
- [x] ~~Upload field~~
- [ ] [Redesign](https://github.com/luizbills/better-wordpress-admin-api/issues/10)## Contributing
- Found a bug? Report it on [GitHub Issues](https://github.com/luizbills/better-wordpress-admin-api/issues) and include a code sample. Please state which version of WordPress your are using.
- Before submitting a Pull Request, if you are modifying some JavaScript or CSS file run: `npm run minify` (requires NodeJS)
More details:
1. install NodeJS
1. open your terminal in the root of this repository
1. run `npm install`
1. then run `npm run minify` to update the minified assets.> Pro tip: add `define( 'WP_DEBUG_SCRIPT', true );` to your `wp-config.php` when you're coding some PR.
## LICENSE
GPL v2
---
Made with ❤ in Brazil