如果你稍加注意,就会发现中文版的Word【版权所有】唐霜 www.tangshuang.net【本文首发于唐霜的博客】Press后台常规设置里,多了一个“IC【本文受版权保护】未经授权,禁止复制转载。P备案号”的选项,毫无疑问,它就像其他自原创内容,盗版必究。【版权所有,侵权必究】定义的选项一样,是通过一段代码,利用Wo【本文受版权保护】本文版权归作者所有,未经授权不得转载。rdPress的API加上去的。你可能希【版权所有,侵权必究】【本文受版权保护】望在常规选项页面里面增加几个作为网站全局【本文受版权保护】【版权所有,侵权必究】设置的项目,比如网站首页的关键词和描述。本文版权归作者所有,未经授权不得转载。【访问 www.tangshuang.net 获取更多精彩内容】那么怎么实现呢?
【版权所有】唐霜 www.tangshu【转载请注明来源】【版权所有】唐霜 www.tangshuang.netang.net【访问 www.tangshuang.n【原创内容,转载请注明出处】未经授权,禁止复制转载。et 获取更多精彩内容】我们首先来追究一下这个备案号的选项是怎么本文作者:唐霜,转载请注明出处。【版权所有,侵权必究】实现的吧。通过对WordPress中文版【版权所有,侵权必究】【本文首发于唐霜的博客】代码的检索,在/wp-content/l【原创不易,请尊重版权】著作权归作者所有,禁止商业用途转载。anguages/zh_CN.php中有【本文首发于唐霜的博客】【关注微信公众号:wwwtangshuangnet】如下代码,实现了这一目的:
【访问 www.tangshuang.n著作权归作者所有,禁止商业用途转载。本文版权归作者所有,未经授权不得转载。et 获取更多精彩内容】【原创内容,转载请注明出处】转载请注明出处:www.tangshua【本文首发于唐霜的博客】【未经授权禁止转载】ng.net/** * ICP license number
* * For compliance with the Telecommunications Regulations. Can be turned off
* in wp-config.php.
* * @since 3.7.0
*/
function zh_cn_l10n_settings_init() {
if ( defined( 'WP_ZH_CN_ICP_NUM' ) && WP_ZH_CN_ICP_NUM ) {
add_settings_field( 'zh_cn_l10n_icp_num', 'ICP备案号', 'zh_cn_l10n_icp_num_callback', 'general' );
register_setting( 'general', 'zh_cn_l10n_icp_num' );
}
}
add_action( 'admin_init', 'zh_cn_l10n_settings_init' );
function zh_cn_l10n_icp_num_callback() {
echo '<input name="zh_cn_l10n_icp_num" type="text" ' . 'id="zh_cn_l10n_icp_num" value="' . esc_attr( get_option( 'zh_cn_l10n_icp_num' ) ) . '" class="regluar-text ltr" />'
. '<p class="description">仅对WordPress自带主题有效。</p>';
}
让我们来剖析这一代码过程。
著作权归作者所有,禁止商业用途转载。未经授权,禁止复制转载。【本文受版权保护】首先,我们需要了解add_setting【未经授权禁止转载】【关注微信公众号:wwwtangshuangnet】s_field和register_set【原创内容,转载请注明出处】【访问 www.tangshuang.net 获取更多精彩内容】ting这两个函数,它们注册了一个新的设著作权归作者所有,禁止商业用途转载。【作者:唐霜】置选项,并且在general设置中生效。【版权所有】唐霜 www.tangshuang.net【未经授权禁止转载】注册后,无需自己写update_opti【转载请注明来源】著作权归作者所有,禁止商业用途转载。on相关代码,即可实现提交设置的时候自动【原创内容,转载请注明出处】【原创内容,转载请注明出处】更新该设置。
著作权归作者所有,禁止商业用途转载。【访问 www.tangshuang.n【转载请注明来源】本文作者:唐霜,转载请注明出处。et 获取更多精彩内容】首先是add_settings_fiel【作者:唐霜】【未经授权禁止转载】d()函数,它的四个参数分别代表:
【访问 www.tangshuang.n【原创内容,转载请注明出处】【本文首发于唐霜的博客】et 获取更多精彩内容】本文版权归作者所有,未经授权不得转载。1.该设置的唯一标识2.显示在设置页面的本文版权归作者所有,未经授权不得转载。本文版权归作者所有,未经授权不得转载。标题3.在设置页面,调用该函数,在这个函【访问 www.tangshuang.net 获取更多精彩内容】本文版权归作者所有,未经授权不得转载。数中echo input来添加文本域4.著作权归作者所有,禁止商业用途转载。【原创内容,转载请注明出处】在哪一个设置页面显示该选项,genera【未经授权禁止转载】转载请注明出处:www.tangshuang.netl代表常规设置,reading代表设置-本文版权归作者所有,未经授权不得转载。【版权所有,侵权必究】阅读,到后台设置页面看URL就知道了
本文作者:唐霜,转载请注明出处。未经授权,禁止复制转载。通过add_action(‘【未经授权禁止转载】原创内容,盗版必究。admin_init’,【版权所有,侵权必究】【关注微信公众号:wwwtangshuangnet】8217;xxxxfun’)原创内容,盗版必究。【原创内容,转载请注明出处】来挂载到钩子,写好第三个参数对应的函数的本文版权归作者所有,未经授权不得转载。【转载请注明来源】内容,这样,就可以在后台显示对应的选项了【访问 www.tangshuang.net 获取更多精彩内容】【转载请注明来源】。
【原创不易,请尊重版权】【原创内容,转载请注明出处】但是,显示选项,并不代表就OK了,当你填【作者:唐霜】【本文受版权保护】写选项内容,提交的时候,还需要一个动作来未经授权,禁止复制转载。未经授权,禁止复制转载。进行保存选项内容。这个时候registe【版权所有】唐霜 www.tangshuang.net【关注微信公众号:wwwtangshuangnet】r_setting()函数就派上用场。
【版权所有,侵权必究】本文作者:唐霜,转载请注明出处。【版权所有】唐霜 www.tangshu【原创不易,请尊重版权】【原创不易,请尊重版权】ang.net本文作者:唐霜,转载请注明出处。该函数的两个参数分布代表:
【版权所有】唐霜 www.tangshu著作权归作者所有,禁止商业用途转载。未经授权,禁止复制转载。ang.net【本文首发于唐霜的博客】未经授权,禁止复制转载。【版权所有,侵权必究】1.在一个设置页面生效,上面genera【转载请注明来源】【未经授权禁止转载】l表示在常规设置页面,提交后才会保存2.【本文首发于唐霜的博客】转载请注明出处:www.tangshuang.net选项的名称(键名),它有两层意思,第一层未经授权,禁止复制转载。未经授权,禁止复制转载。是指,当接收到$_POST的时候,如果存【版权所有】唐霜 www.tangshuang.net【原创不易,请尊重版权】在该键名,则进行保存,例如上面,inpu【转载请注明来源】【关注微信公众号:wwwtangshuangnet】t的name=zh_cn_l10n_ic【版权所有】唐霜 www.tangshuang.net本文版权归作者所有,未经授权不得转载。p_num第二层是指把它作为设置项的数据【未经授权禁止转载】著作权归作者所有,禁止商业用途转载。库键名,可以通过get_option(键【访问 www.tangshuang.net 获取更多精彩内容】未经授权,禁止复制转载。名)获取其值,例如上面就是使用get_o未经授权,禁止复制转载。本文版权归作者所有,未经授权不得转载。ption( ‘zh_cn_【版权所有,侵权必究】【版权所有】唐霜 www.tangshuang.netl10n_icp_num’ 转载请注明出处:www.tangshuang.net未经授权,禁止复制转载。)获取值。
未经授权,禁止复制转载。本文版权归作者所有,未经授权不得转载。本文版权归作者所有,未经授权不得转载。好了,上面把备案号那个选项说清楚了。现在【版权所有】唐霜 www.tangshuang.net【原创内容,转载请注明出处】需要再增加一个知识点:add_setti【本文受版权保护】本文版权归作者所有,未经授权不得转载。ngs_section
【版权所有】唐霜 www.tangshu本文作者:唐霜,转载请注明出处。【关注微信公众号:wwwtangshuangnet】ang.net转载请注明出处:www.tangshua未经授权,禁止复制转载。转载请注明出处:www.tangshuang.netng.net著作权归作者所有,禁止商业用途转载。【本文受版权保护】在上面的解释中,备案号设置项是和其他选项【作者:唐霜】【版权所有】唐霜 www.tangshuang.net混合在一起的,从界面上看,和其他选项没有【访问 www.tangshuang.net 获取更多精彩内容】原创内容,盗版必究。什么区别。而使用add_settings本文作者:唐霜,转载请注明出处。【原创内容,转载请注明出处】_section则可以给这些选项分组,从本文作者:唐霜,转载请注明出处。【原创不易,请尊重版权】而在界面上和已有的项目分开来。我们来看下未经授权,禁止复制转载。转载请注明出处:www.tangshuang.net下面这个界面:
原创内容,盗版必究。原创内容,盗版必究。【作者:唐霜】转载请注明出处:www.tangshua【本文受版权保护】原创内容,盗版必究。ng.net
在所有的选项后面,多出了一个“首页SEO【关注微信公众号:wwwtangshuangnet】原创内容,盗版必究。设置”的组,这个组里面又有三个选项。而a【原创内容,转载请注明出处】原创内容,盗版必究。dd_settings_section就【转载请注明来源】【版权所有】唐霜 www.tangshuang.net是用来添加一个组的。
著作权归作者所有,禁止商业用途转载。本文作者:唐霜,转载请注明出处。本文作者:唐霜,转载请注明出处。基本的代码结构和上面的相同,首先要在ad本文作者:唐霜,转载请注明出处。【作者:唐霜】min_init钩子上挂载一个函数,然后原创内容,盗版必究。【版权所有】唐霜 www.tangshuang.net在这个函数中注册选项(组),也就是add未经授权,禁止复制转载。本文作者:唐霜,转载请注明出处。_settings_section、ad原创内容,盗版必究。未经授权,禁止复制转载。d_settings_field和reg未经授权,禁止复制转载。【访问 www.tangshuang.net 获取更多精彩内容】ister_setting,最后,针对不著作权归作者所有,禁止商业用途转载。【关注微信公众号:wwwtangshuangnet】同的add_xxx,创建不同的回调函数来本文版权归作者所有,未经授权不得转载。【版权所有,侵权必究】显示界面上的提示或文本框。
【关注微信公众号:wwwtangshua【本文受版权保护】转载请注明出处:www.tangshuang.netngnet】【关注微信公众号:wwwtangshua【本文受版权保护】原创内容,盗版必究。ngnet】转载请注明出处:www.tangshua本文版权归作者所有,未经授权不得转载。原创内容,盗版必究。ng.net下面就不完全展示代码,把挂载到admin原创内容,盗版必究。【版权所有,侵权必究】_init上的函数摆出来:
【本文受版权保护】本文版权归作者所有,未经授权不得转载。【未经授权禁止转载】【原创内容,转载请注明出处】function register_setting() {
add_settings_section(
'setting_seo', // 这个组的唯一标识
'首页SEO设置', // 显示的名称
'setting_seo_section_callback_function', // 回调函数,用来显示组的描述信息
'general' // 在哪一个测试页显示
);
add_settings_field(
'seo_title',
'SEO标题',
'setting_seo_title_callback_function',
'general',
'setting_seo', // 和上面添加备案号选项不同,这里要制定section的唯一标识,也就是add_settings_section的第一个参数
array('label_for' => 'seo_title') // 这个无所谓,可有可无
);
register_setting('general','seo_title','trim');
}
通过上面这段代码,就注册好seo_tit【关注微信公众号:wwwtangshuangnet】本文作者:唐霜,转载请注明出处。le这个选项了,写好两个回调函数,在回调本文版权归作者所有,未经授权不得转载。未经授权,禁止复制转载。函数中加入input,提交之后,就可以保【访问 www.tangshuang.net 获取更多精彩内容】本文版权归作者所有,未经授权不得转载。存该选项了,而在前台,则使用get_op【关注微信公众号:wwwtangshuangnet】【本文受版权保护】tion(‘seo_titl【未经授权禁止转载】本文版权归作者所有,未经授权不得转载。e’)来调用该选项。
本文版权归作者所有,未经授权不得转载。未经授权,禁止复制转载。本文作者:唐霜,转载请注明出处。2016-01-17 7485


