在更新WordPress主题时如何保留functions.php里的自定义代码

转载   龙笑天下  2016-08-05 07:25:13  698 人阅读  19 条评论

投放广告联系   诚邀合作伙伴   赞助我们   公告栏   赞助光荣榜

相信大家对wordpress主题中的functions.php文件一定不陌生,这个文件是很多人折腾的最多的文件,本站很多教程中的代码也是直接加到 functions.php 就可以使用的,可是每次更新主题时这个文件都会被主题默认的给覆盖,所以更新主题前都得提前备份自定义的代码,这样就有点麻烦了!那么,怎么对 functions.php 进行高效正确的更新呢?

在更新WordPress主题时如何保留functions.php里的自定义代码

其实办法非常简单,以下有3种方法对functions.php文件进行管理,免去更新主题时复制黏贴大量代码的麻烦!

方法一

实现步骤

为WordPress引入其他functions.php文件,将下面的内容保存为utf-8格式的php文件,并起名为functions-lxtx.php,放入跟主题的functions.php文件同目录;方法来自 @xzblog.cn

  1. <?php
  2. /**
  3.  * Customize Function of Theme By ILXTX.COM
  4.  * @author    龙笑天 <lxt@ilxtx.com>
  5.  * @site      龙笑天下 <www.ilxtx.com>
  6.  * @copyright Copyright (c) 2014-2016, Zhiyan
  7.  * @link      http://www.ilxtx.com/update-functions.html
  8.  */
  9. ?>
  10. <?php
  11. /* 请在下面加入自定义函数 */
  12. ?>

然后在functions.php中加入以下代码,在主题更新functions.php文件时保持加入下面这段代码就可以了,是不是很方便!

  1. // 引入其它functions.php文件
  2. @include(TEMPLATEPATH.'/functions-lxtx.php');

最后,和在functions文件里面加代码一样,在这个functions-lxtx.php文件里面最后一个?>前加入自定义功能代码就可以了。

举例

比如,这里有个小功能,就是“后台颜色随机切换”的代码:

  1. // 后台颜色随机切换
  2. function Bing_random_admin_color(){
  3. static $color;
  4. if( isset( $color ) ) return $color;
  5. $color = array_keys$GLOBALS['_wp_admin_css_colors'] );
  6. $color = $color[array_rand$color )];
  7. return $color;
  8. }
  9. add_filter( 'get_user_option_admin_color', 'Bing_random_admin_color' );

将上面的代码加入那个functions-lxtx.php文件里面,就是下面这样的:

  1. <?php
  2. /**
  3.  * Customize Function of Theme By ILXTX.COM
  4.  * @author    龙笑天 <lxt@ilxtx.com>
  5.  * @site      龙笑天下 <www.ilxtx.com>
  6.  * @copyright Copyright (c) 2014-2016, Zhiyan
  7.  * @link      http://www.ilxtx.com/update-functions.html
  8.  */
  9. ?>
  10. <?php
  11. /* 请在下面加入自定义函数 */
  12. // 后台颜色随即切换
  13. function Bing_random_admin_color(){
  14. static $color;
  15. if( isset( $color ) ) return $color;
  16. $color = array_keys$GLOBALS['_wp_admin_css_colors'] );
  17. $color = $color[array_rand$color )];
  18. return $color;
  19. }
  20. add_filter( 'get_user_option_admin_color', 'Bing_random_admin_color' );
  21. ?>

方法二

自己制作一个小插件,通过插件来加载自定义的函数功能。摘自 @云落

步骤如下

首先将下面的代码保存为utf-8格式的php文件,名字随意,最好英文或数字吧~~然后放进wp-content/plugins文件夹里面;

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

和在functions文件里面加代码一样,将功能代码加到上面的最后一个?>即可,然后在后台的插件列表里就可以看到这个自己制作的“模版函数扩展插件”了。这样一来,以后自定义功能代码都可以放到这个“自制”的小插件里,主题更新可以随意更新不用担心这些自定义代码丢失或被覆盖了。

方法三

将功能代码存为一个个独立的php文件来管理。来自 @v7v3

实现步骤

第一步:在主题文件夹下新建一个名为inc的文件夹

第二步:将以下代码加入到当前主题的functions.php文件中,代码如下:

  1. define('INC', TEMPLATEPATH.'/inc');
  2. IncludeAll( INC );
  3. function IncludeAll($dir){
  4.     $dir = realpath($dir);
  5.     if($dir){
  6.         $files = scandir($dir);
  7.         sort($files);
  8.         foreach($files as $file){
  9.             if($file == '.' || $file == '..'){
  10.                 continue;
  11.             }elseif(preg_match('/.php$/i', $file)){
  12.                 include_once $dir.'/'.$file;
  13.             }
  14.         }
  15.     }
  16. }

以后每次为主题扩展功能的时候只要将代码保存为一个新的php文件,文件名不限,但最好是英文或数字,然后将文件放入到inc目录下即可,效果和直接将代码加到functions.php文件一样,而且一旦代码出错只要直接删除出错代码的文件即可。

PS:以上几种方法,大家任选其一吧~~

文章标签: ,   ,  
原文地址:http://www.ilxtx.com/update-functions.html
温馨提示:文章内容仅代表作者个人观点,不代表boke112导航赞同其观点和对其真实性负责!
版权声明:本文为转载文章,来源于 龙笑天下 ,版权归原作者所有,欢迎分享本文,转载请保留出处!
WordPress/zblogPHP免费响应式博客主题Blogs

 发表评论


  1. 热腾网
    热腾网 【状元】 @回复

    现在弄得我自己的那个文件特大,什么外加的都有。

  2. 野人摊影视分享
    野人摊影视分享 【秀才】 @回复

    最近在研究七牛的用法,准备把图片啥的都弄到七牛去,偶然发现博客的水印图片的域名好像是旧的域名,要不要修改下啊,哈哈!

  3. 孟子非博客
    孟子非博客 【状元】 @回复

    观摩一下

  4. 刘传鹏博客
    刘传鹏博客 【举人】 @回复

    学习了

  5. 爱时尚
    爱时尚 【尚书】 @回复

    路过,露个脸!

  6. 纯洁博客
    纯洁博客 【状元】 @回复

    我用的有个插件,里面很多短代码

  7. JV
    JV 【秀才】 @回复

    现在写主题 functions.php 都不放代码,而是另行引用。也有专门给用户添加自定义函数的地方。

  8. 易淘金股票博客
    易淘金股票博客 【进士】 @回复

    谢谢分享经验

  9. 橘子书
    橘子书 【丞相】 @回复

    直接改得了。小改不怕

  10. 福建省联通4G无线流量卡开卖啦
    福建省联通4G无线流量卡开卖啦 【进士】 @回复

    不知道要怎么说了 不怎么更新主题

  11. 淘汇站
    淘汇站 【秀才】 @回复

    不错学习了

  12. 小C博客
    小C博客 【进士】 @回复

    感觉好麻烦,我直接引入的

  13. 我爱动感单车网
    我爱动感单车网 【尚书】 @回复

    [拳头] 不到万不得已,我是不会更换主题的,我觉得这样才好,更换来更换去对搜索引擎应该不大友好吧。再有,因为本人比较不喜欢折腾来折腾去太耗费时间与精力,估计这个不怎么用得上!

  14. Koolight
    Koolight 【尚书】 @回复

    那不是又多了一次php请求?

  15. 明月登楼的博客
    明月登楼的博客 【王爷】 @回复

    过来露个脸!

  16. 爱时尚
    爱时尚 【尚书】 @回复

    备份是重点,要养成一种备份的习惯

  17. 国家地理
    国家地理 【秀才】 @回复

    我就来看看

  18. 捌零男人
    捌零男人 【进士】 @回复

    粗暴点,在根目录建个文件夹,把functions.php和其他不能覆盖的文件放进去备份,更新升级主题后还原回去