wordpress后台定制为菜单页面注册字段
本文最后更新于 743 天前,其中的信息可能已经有所发展或是发生改变。
前面说到了wordpress后台定制菜单,菜单添加好了还需要页面,还需要添加一些存储数据的字段。以方便可以在主题里全局调用,快捷更改前端数据。
本文详细注释了每一行代码,完整代码请看文章末尾图

注册存储字段

创建一个函数,用于注册页面数据存储字段

function register_setting_field(){

设定一个组变量,值为自定义的一个组名称,用于给页面设置项进行组区分,告诉这个设置页面在哪个页面中显示

设置项分组

    $option_group = 'group_color';

register_setting()函数注册字段。参数为、字段的名称

    register_setting($option_group,'custom_setting');
    //参数1:字段所属的组
    //参数2:字段的名称是注册到数据库中的一个字段

设定一个区域变量,值为自定义的一个区域名称,用于给页面设置项进行区域区分。wordpress可以将一个区域的设置页面,添加到任何其他设置页面中,这些设置项以区域隔开

    $setting_section = 'section';

为某个组添加一个设置区域

    add_settings_section($setting_section,'标题','',$option_group);
    //参数1:设置的区域名
    //参数2:区域的标题
    //参数3:函数,在指定的组当中,调用的显示内容的函数
    //参数4:将设置区域添加到这个组当中。可选值:general、writing、reading、discussion、media、permalink、privacy等等

给自定义菜单设置页面添加字段

    add_settings_field('nameid','全局设置','custom_setting_field',$option_group,$setting_section);
    //参数1:字段的id
    //参数2:字段的标题
    //参数3:定义的字段函数
    //参数4:字段所属的组。可选值同上
    //参数5:字段所属的区域
}

将注册函数挂载到admin_init中

add_action('admin_init','register_setting_field','');

自定义字段

创建一个自定义字段的函数

function custom_setting_field(){

获取字段,可以看做是一个多维数组

    $custom_setting = get_option('custom_setting');
    //get_option('custom_setting');表示从数据库中获取这个字段

在字段中定义数组

    $custom_arr = $custom_setting['custom_arr'];
    //字段本身可看做是一个数组,单独创建一个不能在html中定义的变量

下方将会添加一些html,所以要用到php标签结束标记

?>

编写一些html表单中的元素,实例中仅列出一部分。更多其他表单元素,自行百度

注意:表单元素的name属性和value属性,name属性值前缀必须和数据库中的自定义字段名称一致
<?php echo custom_setting['logotitle'];?>用于输出这个字段中的logotitle元素的值
<h2>Logo标题</h2>
<span>大标题:</span><input name="custom_setting[logotitle]" type="text" value="<?php echo $custom_setting['logotitle'];?>"/>
<span>小标题:</span><input name="custom_setting[logotitles]" type="text" value="<?php echo $custom_setting['logotitles'];?>" class="regular-text"/>
<p><em>你可以更改这里,为网站头部 logo 旁边填写合适的文字。</em></p>

//$custom_arr作为下拉选单选中项,需要用到<?php selected('4',$custom_arr);?>来定义值
<span><strong>首页产品显示数量:</strong></span><select name="custom_setting[custom_arr]">
<option value="4" <?php selected('4',$custom_arr);?>>4</option>
<option value="5" <?php selected('5',$custom_arr);?>>5</option>
<option value="6" <?php selected('6',$custom_arr);?>>6</option>
<option value="7" <?php selected('7',$custom_arr);?>>7</option>
</select>

html结束,重新添加一个php标签开始标记,并结束这个函数

<?php
}

至此菜单页面的字段注册与html已经写好,接下来将html显示到菜单页面中,并添加保存按钮

设置页面

注册菜单

function register_diy_topmenu(){
add_menu_page('爸爸菜单','爸爸菜单','manage_options','diy_topmenu','diy_topmenu_page','dashicons-menu');

//后台顶级菜单下的第一个菜单会与顶级菜单是同样的名称,如果你想让他以不一样的名称显示,可以单独注册一个子菜单,其参数与顶级菜单一致
add_submenu_page('diy_topmenu','越南价格表','越南价格表','manage_options','diy_topmenu','diy_topmenu_page');

}
add_action('admin_menu','register_diy_topmenu');

设置页面

添加一个设置页面的函数

function diy_topmenu_page(){

下方将会添加一些html,同样要用php标签结束

?>

你可以自定义css和js

<!--<link href="" rel="stylesheet" type="text/css" />
<script src=""></script>-->
<style>
.form-table{width:90%;}
.form-table th {font-size: 20px;}
.form-table h2{font-size:1.2em;}
</style>

html编写

<div class="wrap">
  <form action="options.php" method="post">
    <?php
      $option_group = 'group_color';//指定设置页面组
      settings_fields($option_group);//输出必要的字段、验证信息
      do_settings_sections($option_group);//在这个页面中显示出所有字段及内容
      submit_button();//输出保存按钮,保存按钮也可自定义,自行百度
    ?></form>
</div>

html结束,重新添加一个php标签开始标记,结束函数

<?php
}

文章原文:https://www.luojiasan.com/category/wordpress/986.html
文章来源:https://www.luojiasan.com
[声明]本站内容除特别声明外,均属站长手写原创内容。
1、本站所有原创文章、图片等资料,如需转载使用,必须附上来源出处及链接方式;
2、若本站侵犯到您的权益或任何版权问题,请立即告知本站,我们将及时删除并致以最深的歉意!
3、本站转载文章版权归原作者所有,内容为作者个人观点,本站只提供参考并不构成任何投资及应用建议。任何本站转载文章链接及得到的资讯、产品、服务,本站概不负责,亦不负任何法律责任。
暂无评论

发送评论 编辑评论


				
上一篇
下一篇