一入主题深似海,从此post是路人。自从开始捣鼓主题,总是能在适当的时候出现知识分叉,然后发现原来之前做的都不是特别合理与规范,于是推倒重来。虽然有用没用的知识确实增加了,然而博客的文章数量也是肉眼可见的停滞了。
自从发现了wordpress_customize这个东西,就想着把一些简单的博客相关参数放到自定义的options项目里。于是在customize增加了几个section。效果如下:
其中“站点身份”,“菜单”,“静态首页”是系统自带的,因为自己基本用不到,所以就想着自定义一下,把这些项目暂时移除。
移除的函数我都准备好了:
WP_Customize_Manager::remove_section( string $id )
然而却苦于不知道这几个项目的id值,这事儿其实也怪谷歌,自从谷歌翻译退出中国,剩余能用的全页翻译插件要么限量免费,要么就是浏览器独占,直接导致楼主阅读英文文档的水平下降为了负值。
虽然没能在官方文档中找到默认的几个项目,考虑到wp命名的规范性,尝试利用审查元素看了一下几个section的源码。
选中的这个section是博主自定义的,而自定义名为“august_global”,显然,wp利用规范的字段+自定义名称,自动定义了一个id。通过查找“accordion-section-”前缀,就可以找到需要移除的几个自定义项目的id值了。
启动主题,站点身份,菜单,静态首页的id
- themes
- title_tagline
- nav_menus
- static_front_page
移除自定义节点的范例
需要注意的是,删除节并不会销毁WP_Customize_Section实例或删除其筛选器。
function blogpress_theme_colors_section( $wp_customize ) {
$wp_customize->remove_section( 'colors' );
}
add_action( 'customize_register', 'blogpress_theme_colors_section' );
实际效果
博主是直接将命令写在了“inc/customizer.php”文件当中,生成自定义节点之前就先进行了移除的操作:
//移除默认设置
$wp_customize -> remove_section('themes');
$wp_customize -> remove_section('title_tagline');
$wp_customize -> remove_section('nav_menus');
$wp_customize -> remove_section('static_front_page');
可以看到界面是干净了许多,但上述语句有一个bug,菜单并没有正确被移除,仔细观察菜单项目,可以发现它的类名(“accordion-panel-nav_menus”)并不是一个section,而是一个panel,但是利用如下语句:
$wp_customize -> remove_panel('nav_menus');
尝试移除菜单,也无法得到正确的响应。当然菜单是一个很重要的设置项,一般情况下都是会保留的吧...恩...反正文章的标题也只是移除节点啊。