如何方便的在更新主题时保留 functions.php 里的自定义

2016-03-2108:00:53 27 8,471
摘要

主题里面的functions.php文件是很多人折腾的最多的文件,可是每次更新主题时这个文件都会被主题默认的给覆盖,所以更新主题前都得提前备份自定义的代码有时候也是一个麻烦事儿,明月就干出丢失functions.php自定义代码造成网站出问题的尴尬(悲催的是我竟然没有备份过,当时),还好最后在管理员的帮助下给找回来了!因此,今天在【乐趣公园】博客(也就是本站主题的作者)上发现了一个很好的方法,感觉非常的方便实用,于是我就参考原文撰写了此文分享给大家。

主题里面的 functions.php 文件是很多人折腾的最多的文件,可是每次更新主题时这个文件都会被主题默认的给覆盖,所以更新主题前都得提前备份自定义的代码有时候也是一个麻烦事儿,明月就干出丢失 functions.php 自定义代码造成网站出问题的尴尬(悲催的是我竟然没有备份过,当时),还好最后在管理员的帮助下给找回来了!因此,今天在【乐趣公园』博客(也就是本站主题的作者)上发现了一个很好的方法,感觉非常的方便实用,于是我就参考原文撰写了此文分享给大家。

其实这个办法,非常简单,非常非常的简单的。我们知道一般来说,插件的代码放进 functions 文件里面也可以使用,反过来说,functions 文件里面的代码放进插件也一样使用,那么自己做个插件不就好了,其实自己做一个插件很简单的,来跟着明月看一下吧。

  1. <?php
  2. /* 
  3. Plugin Name: 模版函数扩展插件 
  4. Description: 给主题模版函数库里添加点小功能 
  5. Author: 明月登楼 
  6. */
  7. //文件里面加入代码就可以和 functions 文件一样了 
  8. ?>

把上面的代码自己另存为一个 php 文件,记住是 UTF-8 编码,然后放进 wp-content/plugins 文件夹,对,直接放进插件文件夹,然后去插件中心看看。

如何方便的在更新主题时保留 functions.php 里的自定义

一个插件就这么出来了,虽然里面没有什么实际代码,但是他就是一个插件,对网站开始起作用了,和在 functions 文件里面加代码一样,在这个小插件里面加代码就可以了,比如下面的小功能。 这里有个小功能,就是后台颜色随即切换的代码。

  1. function Bing_random_admin_color(){
  2.     static $color;
  3.     if( isset( $color ) ) return $color;
  4.     $color = array_keys$GLOBALS['_wp_admin_css_colors'] );
  5.     $color = $color[array_rand$color )];
  6.     return $color;
  7. }
  8. add_filter( 'get_user_option_admin_color', 'Bing_random_admin_color' );

将上面的代码加入那个小插件文件里面,就是下面这样的:

  1. <?php
  2. /* 
  3. Plugin Name: 模版函数扩展插件
  4. Description: 给主题模版函数库里添加点小功能 
  5. Author: 明月登楼 
  6. */
  7. //文件里面加入代码就可以和 functions 文件一样了  
  8. function Bing_random_admin_color(){
  9.     static $color;
  10.     if( isset( $color ) ) return $color;
  11.     $color = array_keys$GLOBALS['_wp_admin_css_colors'] );
  12.     $color = $color[array_rand$color )];
  13.     return $color;
  14. }
  15. add_filter( 'get_user_option_admin_color', 'Bing_random_admin_color' );
  16. ?>

去后台启用插件试试,刷新看看,生效,没问题!完美!

这样一来以后还有需要放到 functions.php 里的自定义代码都可以放到这个“自制”的小插件了,主题更新可以随意更新不用担心丢失这些辛辛苦苦收集的自定义代码了。

在【乐趣公园』发现这个方法时,竟然还获知主题更新了,于是马上更新了主题,启用了新的卡片式博客界面,感觉好酷呀!呵呵!

历史文章推荐:

  • 本博客公众号
  • 扫一扫关注!
  • weinxin
  • 本博客小程序
  • 微信内浏览本博客
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:27   其中:访客  14   博主  13

    • Monicfenga Monicfenga 1

      用“子主题”就能搞定“更新主题时会丢失function.php修改”的问题……
      http://mf.dongguoshare.com/wordpress-child-theme.html (这是我写/翻译的,关于“子主题”的文章)
      好吧,这也算一种方法,异曲同工。

      新问题:如果是CSS呢?