wordpress后台的自定义设置页面实现方法很多,各种框架。wordpress官方也提供了一套设置页面的api,使用它你将获得一个完美适合wordpress后台的页面。当然不使用它也是可以的,比如狗哥就喜欢直接写html,因为不用记函数。
下面是一个使用WordPress Setting API实现自定义设置页面demo,复制下面的代码保存为my-custom-plugin.php
文件,并在插件目录中创建一个my-custom-plugin
文件夹,就能在后台插件列表中看见它了。
复制
<?php /** * Plugin Name: My Custom Plugin * Description: A simple custom plugin with a settings page. * Version: 1.0 * Author: Your Name */ // Add menu item for the settings page add_action('admin_menu', 'my_custom_plugin_menu'); function my_custom_plugin_menu() { add_options_page('My Custom Plugin Settings', 'My Custom Plugin', 'manage_options', 'my-custom-plugin-settings', 'my_custom_plugin_settings_page'); } // Display the settings page function my_custom_plugin_settings_page() { ?> <div class="wrap"> <h1>My Custom Plugin Settings</h1> <form method="post" action="options.php"> <?php settings_fields('my-custom-plugin-settings-group'); do_settings_sections('my-custom-plugin-settings'); submit_button(); ?> </form> </div> <?php } // Register settings, sections, and fields add_action('admin_init', 'my_custom_plugin_settings_init'); function my_custom_plugin_settings_init() { register_setting('my-custom-plugin-settings-group', 'my_custom_plugin_text'); register_setting('my-custom-plugin-settings-group', 'my_custom_plugin_checkbox'); register_setting('my-custom-plugin-settings-group', 'my_custom_plugin_select'); add_settings_section('my-custom-plugin-settings-section', 'Settings', null, 'my-custom-plugin-settings'); add_settings_field('my_custom_plugin_text', 'Text Input', 'my_custom_plugin_text_callback', 'my-custom-plugin-settings', 'my-custom-plugin-settings-section'); add_settings_field('my_custom_plugin_checkbox', 'Checkbox', 'my_custom_plugin_checkbox_callback', 'my-custom-plugin-settings', 'my-custom-plugin-settings-section'); add_settings_field('my_custom_plugin_select', 'Select Dropdown', 'my_custom_plugin_select_callback', 'my-custom-plugin-settings', 'my-custom-plugin-settings-section'); } // Callback functions for input fields with descriptions and labels function my_custom_plugin_text_callback() { $text = get_option('my_custom_plugin_text'); echo '<input type="text" name="my_custom_plugin_text" value="' . esc_attr($text) . '">'; echo '<p class="description">Enter some text here.</p>'; } function my_custom_plugin_checkbox_callback() { $checkbox = get_option('my_custom_plugin_checkbox'); echo '<label><input type="checkbox" name="my_custom_plugin_checkbox" value="1"' . checked(1, $checkbox, false) . '> Enable this option.</label>'; } function my_custom_plugin_select_callback() { $select = get_option('my_custom_plugin_select'); ?> <select name="my_custom_plugin_select"> <option value="option1" <?php selected($select, 'option1'); ?>>Option 1</option> <option value="option2" <?php selected($select, 'option2'); ?>>Option 2</option> <option value="option3" <?php selected($select, 'option3'); ?>>Option 3</option> </select> <p class="description">Choose an option from the dropdown.</p> <?php }
基本上一般的设置够用了,如果需要更强的组件就需要别的框架了。
评论 (0)