/ WordPress

WordPress插件编写之添加设置选项

编写一款WordPress插件很有可能要给插件增加一个设置页面,今天就以“语法高亮增强插件”为例来介绍下WordPress插件的设置代码如何编写。

1.确定需要用户配置的各个参数及其默认值。

function highlighter_activate() { $options['highlighter_style'] = "Default"; $options['highlighter_tagName'] = "pre"; $options['highlighter_autolinks'] = "true"; $options['highlighter_collapse'] = "false"; $options['highlighter_firstline'] = 1; $options['highlighter_gutter'] = "true"; $options['highlighter_htmlscript'] = "false"; $options['highlighter_smarttabs'] = "true"; $options['highlighter_tabsize'] = 4; $options['highlighter_toolbar'] = "true"; add_option( 'highlighter_options', $options ); //这里也可以用update_option,区别是使用update_action会在每一次重新启用插件时重置用户设置为默认值。 } register_activation_hook(FILE, 'highlighter_activate');

2.添加配置栏

function highlighter_admin_init(){ register_setting( 'highlighter_options', 'highlighter_options', 'highlighter_options_validate' ); //注册配置,第3个参数是回调函数,用于过滤提交的内容 add_settings_section('highlighter_main', __('Settings','sh'), 'highlighter_section', 'highlighter'); //添加设置群 add_settings_field('style', __('style','sh'), 'highlighter_style', 'highlighter', 'highlighter_main'); add_settings_field('tagName', __('tagName','sh'), 'highlighter_tagName', 'highlighter', 'highlighter_main'); add_settings_field('autolinks', __('autolinks','sh'), 'highlighter_autolinks', 'highlighter', 'highlighter_main'); add_settings_field('collapse', __('collapse','sh'), 'highlighter_collapse', 'highlighter', 'highlighter_main'); add_settings_field('firstline', __('firstline','sh'), 'highlighter_firstline', 'highlighter', 'highlighter_main'); add_settings_field('gutter', __('gutter','sh'), 'highlighter_gutter', 'highlighter', 'highlighter_main'); add_settings_field('htmlscript', __('htmlscript','sh'), 'highlighter_htmlscript', 'highlighter', 'highlighter_main'); add_settings_field('smarttabs', __('smarttabs','sh'), 'highlighter_smarttabs', 'highlighter', 'highlighter_main'); add_settings_field('tabsize', __('tabsize','sh'), 'highlighter_tabsize', 'highlighter', 'highlighter_main'); add_settings_field('toolbar', __('toolbar','sh'), 'highlighter_toolbar', 'highlighter', 'highlighter_main'); //添加具体配置 } add_action('admin_init', 'highlighter_admin_init');

3.具体各个配置项的内容

function highlighter_style() { $options = get_option( 'highlighter_options' ); ?>
<?php }

注意函数名要和上面定义的时候一致。

4.回调函数

function highlighter_options_validate($input) { $input['highlighter_tagName'] = $input['highlighter_tagName'] ? $input['highlighter_tagName'] : "pre"; $input['highlighter_firstline'] = is_int($input['highlighter_firstline']) ? $input['highlighter_firstline'] : 1; $input['highlighter_tabsize'] = is_int($input['highlighter_tabsize']) ? $input['highlighter_tabsize'] : 4; return $input; }

5.生成配置页

function highlighter_options_page() { $options = get_option( 'highlighter_options' ); ?>

<?php }

6.最后生成到配置页的链接

function highlighter_menu() { add_options_page('Syntax-highlighter++ Settings', __('Syntax-highlighter++','sh'), 'manage_options', 'Syntaxhighlighterpp', 'highlighter_options_page'); //在设置页添加链接 } function highlighter_action_links( $links, $file ) { if ( $file != plugin_basename( FILE )) return $links; $settings_link = 'Settings'; array_unshift( $links, $settings_link ); return $links; //在插件页添加链接 } add_filter( 'plugin_action_links', 'highlighter_action_links',10,2); add_action('admin_menu','highlighter_menu');

WordPress插件编写之添加设置选项
Share this