30/06
2018
Allows easy creation of Wordpress settings pages.
Allows easy creation of Wordpress settings pages., (*1)
composer require agraddy/wp-base-settings
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., (*2)
You can create a very simple custom plugin settings page following these steps:, (*3)
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 .= '
'; $output .= 'For Longer Text: ' . esc_html($longer_text); $output .= '
'; $output .= 'Pick A Page: ' . esc_html($page_id); $output .= '
'; return $output; } } new Custom_Plugin(); ?>
MIT, (*4)