相信接触过 wordpress 建站的朋友都知道,主题里面的 functions.php 文件是折腾的最多的一个文件,各种主题修改功能基本都是在 functions.php 里面来实现,可是每次更新主题时这个文件都会被主题默认的给覆盖,所以在更新主题前都得提前备份自定义的代码特不方便,要是给忘了那就真是个坑了。
今天在boke112 导航上面看到这个“WordPress 教程:在更新主题时保留 functions.php 里自定义代码的办法”解决办法,把它搬过来分享给有需要这个功能的沃友们。
操作方法 1
其实这个办法操作起来非常简单,就是通过插件加载自定义的函数功能来现实。插件的代码放进 functions 文件里面也可以使用,反过来说,functions 文件里面的代码放进插件也一样使用。具体操作如下:
首先将下面的代码保存为 utf-8 格式的 php 文件,名字随意,最好英文或数字吧~~然后放进 wp-content/plugins 文件夹里面;
- <??php
- /*
- Plugin?Name:?模版函数扩展插件
- Description:?给主题模版函数库里添加点小功能
- Author:?沃森博客
- */
- //文件里面加入代码就可以和 functions 文件一样了
- ?>
和在 functions 文件里面加代码一样,将功能代码加到上面的最后一个?>即可,然后在后台的插件列表里就可以看到这个自己制作的“模版函数扩展插件”了。这样一来,以后自定义功能代码都可以放到这个“自制”的小插件里,主题更新可以随意更新不用担心这些自定义代码丢失或被覆盖了。
操作方法 2
为 WordPress 引入其他 functions.php 文件,将下面的内容保存为 utf-8 格式的 php 文件,并起名为 functions-wosn.php,放入跟主题的 functions.php 文件同目录;
- <?php
- /**
- ?*?Customize?Function?of?Theme?By?wosn.net
- ?*?@author????沃森博客?<admin@wosn.net>
- ?*?@site??????沃森博客?<wosn.net>
- ?*?@copyright?Copyright?(c)?2014-2018,?Wosn
- ?*/
- ?>
- <?php
- /*?请在下面加入自定义函数?*/
- ?>
然后在 functions.php 中加入以下代码,在主题更新 functions.php 文件时保持加入下面这段代码就可以了,是不是很方便!
- //?引入其它 functions.php 文件
- @include(TEMPLATEPATH.'/functions-wosn.php');
最后,和在 functions 文件里面加代码一样,在这个 functions-wosn.php 文件里面最后一个?>前加入自定义功能代码就可以了。
操作方法 3
将功能代码存为一个个独立的 php 文件来管理。
实现步骤
第一步:在主题文件夹下新建一个名为 inc 的文件夹
第二步:将以下代码加入到当前主题的 functions.php 文件中,代码如下:
- define('INC',?TEMPLATEPATH.'/inc');
- IncludeAll(?INC?);
- function?IncludeAll($dir){
- ????$dir?=?realpath($dir);
- ????if($dir){
- ????????$files?=?scandir($dir);
- ????????sort($files);
- ????????foreach($files?as?$file){
- ????????????if($file?==?'.'?||?$file?==?'..'){
- ????????????????continue;
- ????????????}elseif(preg_match('/.php$/i',?$file)){
- ????????????????include_once?$dir.'/'.$file;
- ????????????}
- ????????}
- ????}
- }
以后每次为主题扩展功能的时候只要将代码保存为一个新的 php 文件,文件名不限,但最好是英文或数字,然后将文件放入到 inc 目录下即可,效果和直接将代码加到 functions.php 文件一样,而且一旦代码出错只要直接删除出错代码的文件即可。
到此,对“WordPress 教程:在更新主题时保留 functions.php 里自定义代码的办法”就说完了,个人觉得第一种方法最方便,建议使用。
原文链接:https://boke112.com/3340.html
评论