定制 agraddy/wp-base-settings 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

agraddy/wp-base-settings

Composer 安装命令:

composer require agraddy/wp-base-settings

包简介

Allows easy creation of Wordpress settings pages.

README 文档

README

Allows easy creation of Wordpress settings pages.

Installation

composer require agraddy/wp-base-settings

Why

Creating Wordpress settings pages takes a lot or work. The goal of this library is to simplify the process so that you can quickly output custom pages with custom fields.

Basic Example

You can create a very simple custom plugin settings page following these steps:

  • Make a directory named custom-plugin inside your Wordpress /wp-content/plugins directory
  • Inside the /wp-content/plugins/custom-plugin directory, use composer to install agraddy/wp-base-settings (this should create a vendor directory)
  • Create a file named main.php and add the code below.
  • Put the shortcode [cp_data_output] on a page to view the output.
<?php
/**   
 * Plugin Name: Custom Plugin  
 * Description: A simple custom plugin to demonstrate creating a settings page.
 * Version: 1.0.0              
 */

require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php');

class Custom_Plugin {
        public $key = 'cp';
        public $key_ = 'cp_';

        public $settings;
        public $page;

        public function __construct() {
                add_action('init', [$this, 'init']);

                // Create an instance of Settings.
                $this->settings = new \agraddy\base\Settings();

                // Set the key that needs to be used.
                $this->settings->config('key', $this->key);

                // Create the title for the page and the menu slug (used in the url)
                // In this example, it is: cp_settings
                $this->page = $this->settings->page('Custom Settings', $this->key_ . 'settings');

                // Create three different types of fields to save on the settings page.
                $this->page->add('text', 'First Example');
                $this->page->add('textarea', 'For Longer Text');
                $this->page->add('select_page', 'Pick A Page');
        }

        public function init() {
                // Add to the menu using typical Wordpress code (only allow admins to access):
                add_action('admin_menu', function() {
                        add_options_page('Custom Settings', 'Custom Settings', 'manage_options', $this->key_ . 'settings', [$this, 'customSettings']);
                });

                // Put the shortcode [cp_data_output] on a page to view the output.
                add_shortcode('cp_data_output', [$this, 'shortcodeDataOutput']);
        }

        public function customSettings() {
                // Output the html for the settings page.
                echo $this->page->html();
        }

        public function shortcodeDataOutput() {
                // The data is stored in Wordpress options.
                // It is prefixed by the key that was setup.
                // The name that was used for the field is converted to lowercase and spaces replace with underscores.
                $first_example = get_option('cp_first_example');
                $longer_text = get_option('cp_for_longer_text');
                $page_id = get_option('cp_pick_a_page');

                $output = '';
                $output .= 'First Example: ' . esc_html($first_example);
                $output .= '<br>';
                $output .= 'For Longer Text: ' . esc_html($longer_text);
                $output .= '<br>';
                $output .= 'Pick A Page: ' . esc_html($page_id);
                $output .= '<br>';

                return $output;
        }
}

new Custom_Plugin();

?>

Notes

  • The main settings code is in the __construct method (most of the other code is to setup a custom plugin to see it working).
  • This is just the introduction page to explain the basics. If you have any questions, please open an issue.

License

MIT

agraddy/wp-base-settings 适用场景与选型建议

agraddy/wp-base-settings 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 42 次下载、GitHub Stars 达 0, 最近一次更新时间为 2018 年 06 月 03 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 agraddy/wp-base-settings 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 agraddy/wp-base-settings 我们能提供哪些服务?
定制开发 / 二次开发

基于 agraddy/wp-base-settings 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 42
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 13
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2018-06-03