wordpress自定义配置
897 2023年04月07日 WordPress,后端在制作插件时,自定义的配置项是经常会遇到的。在左侧“配置”的常规菜单下添加配置以下代码可实现:
add_setting(){
register_setting( 'general', 'objui_keyword' );
add_settings_field(
'objui_keyword',
'<label for="objui_keyword">关键词:</label>',
function(){
$value = get_option( 'objui_keyword', '' );
echo '<input name="objui_keyword" id="objui_keyword" placeholder="网站关键词,多个用, 隔开" class="regular-text phone" value="' . $value . '"/>';
},
'general'
);
}
add_filter( 'admin_init' , 'add_setting');
代码解析:在“设置”-“常规”配置页面添加了关键词设置 objui_keyword。
相关函数: register_setting 、 add_settings_field 、add_filter
简单几个配置项可以这么操作。但如果配置项有很多呢,此时我们就需要单独增加一个配置页面,甚至几个页面来完成配置。
//添加顶部菜单
function wporg_options_page() {
add_menu_page(
'微信配置',
'微信',
'manage_options',
'objui_wx_config',
'objui_wx_config_html',
'dashicons-format-chat',
10
);
}
add_action( 'admin_menu', 'wporg_options_page' );
//配置页面HTML
function objui_wx_config_html() {
if ( ! current_user_can( 'manage_options' ) ) {
return;
}
require_once plugin_dir_path(__FILE__). 'templates/setting.php';
}
//添加字段
function dbi_register_settings() {
add_settings_section( 'objui_wx_section', '微信配置', 'section_text', 'objui_wx_group' );
//appid
register_setting( 'objui_wx_group', 'objui_wx_appid' );
add_settings_field( 'objui_wx_appid', 'AppID:', 'objui_wx_appid_cp', 'objui_wx_group', 'objui_wx_section' );
}
add_action( 'admin_init', 'dbi_register_settings' );
function section_text() {
echo "<p>以下是微信相关配置:</p>";
}
function objui_wx_appid_cp() {
$options = get_option( 'objui_wx_appid' );
$value = esc_attr($options);
echo "<input id='objui_wx_appid' name='objui_wx_appid' type='text' value='{$value}' />";
}
//setting.php
<?php
if ( isset( $_GET[ 'settings-updated' ] ) ) {
add_settings_error( 'objui_wx_messages', 'objui_wx_message', __( '保存成功', 'objui_wx_group' ), 'updated' );
}
settings_errors( 'objui_wx_messages' );
?>
<div class=wrap>
<form action="options.php" method="post">
<?php
settings_fields( 'objui_wx_group' );
do_settings_sections( 'objui_wx_group' );
submit_button( '保存配置' );
?>
</form>
</div>
代码解析:add_menu_page 创建了顶部菜单“微信”,其打开的页面链接是 templates/setting.php。register_setting在wp_options表添加了一条option_name为objui_wx_appid的记录。 add_settings_field设置了字段的表单。 然后在setting.php通过settings_fields展示出来。 最后提交到options.php进行保存。
注意:一定需要通过add_settings_field和settings_fields 设置表单,如果直接在setting页面实现表单,得自行处理表单验证,否则会触发安全报警,无法保存数据。
相关函数: add_menu_page 、 add_settings_section 、 register_setting、 add_settings_field、 add_settings_error、 settings_errors 、settings_fields 、do_settings_sections、 submit_button
-
使用Echarts画甘特图
Echarts是一个非常强大的图表库, 下面我们来使用它来画甘特图,
-
go语言怎么连接mysql,并实现增删改查
要使用Go语言连接MySQL,需要使用第三方库。常用的库包括: 这里以go-sql-driver/mysql为 […]
-
beego实现模块化开发
Beego 框架可以通过模块化开发来提高项目的可维护性和可扩展性,可以将一个大型的应用划分为多个模块,每个模块独立维护,有自己的控制器、视图和模型等。
-
Beego实现JWT
Beego是一个基于Go语言的Web框架,实现JWT认证可以通过beego的中间件机制来实现,下面是一个简单的 […]
-
使用Axios+PHP+JWT实现登录认证
JWT(JSON Web Token),顾名思义就是可以在Web上传输的token,这种token是用JSON格式进行format的。它是一个开源标准(RFC7519),定义了一个紧凑的自包含的方式在不同实体之间安全的用JSON格式传输信息。
-
PHP解决雪花算法ID在前端精度丢失的问题
雪花算法(Snowflake)是一种用于生成全局唯一ID的算法,其基本思路是结合时间戳、机器ID、租约ID和序列号生成一个64位的数据,从而保证ID的唯一性。 雪花算法的生成过程如下:
-
虚拟滚动实现页面百万数据滚动
1.概念 虚拟滚动是一种优化长列表性能的技术,它通过按需渲染的方式,只渲染可见部分的列表项,而不是渲染整个列表 […]
-
go实现MD5
在这个示例中,我们使用了Go标准库中的crypto/md5包来计算一个字符串的MD5值。首先,我们将字符串转换 […]
-
Linux服务器Rsync结合inotify同步文件
一、实现效果 服务器A:192.168.161.150 (分布服务器)(rsync客户端+inotify) 服务器B:192.168.161.151 (WEB服务器1)(rsync服务端) 服务器C:192.168.161.152 (WEB服务器2)(rsync服务端) 说明:服务器A有文件更新,自动同步到服务器B和C
-
JavaScript实现滑动验证码
滑动验证码(也叫做滑动拼图验证码)是一种用户交互形式的验证码,通常用于网页或移动应用的登录、注册或敏感操作。其 […]