说明
在Typecho系统中,有的魔改需要将代码放入functions.php文件中。有些主题的文件被加了密,我们要怎么办呢?
解决办法是:我们可以直接建立一个新的functions.php文件然后引入,我在Typecho中文网找到了functions.php文件的实现原理。
看完原理后我就尝试了新建一个同效果的functions.php文件
博客环境
- Typecho:1.1版本 (17.10.30)
- 主题:handsome6.0
第一步 添加代码
打开typecho目录/typecho/1.1-17.10.30-release/build/var/Widget/Archive.php文件,在execute()函数中,即1.1版本大概在1373行,有如下代码:
/** 初始化皮肤函数 */
$functionsFile = $this->_themeDir . 'functions.php';
if ((!$this->_invokeFromOutside || $this->parameter->type == 404) && file_exists($functionsFile)) {
require_once $functionsFile;
if (function_exists('themeInit')) {
themeInit($this);
}
}
我们需要复制它并粘贴在其下面,进行修改就行了就是重新定义个新的执行我们新建的functions.php文件,修改如下:
/** 初始化皮肤函数 */
$functionsFile = $this->_themeDir . 'functions.php';
if ((!$this->_invokeFromOutside || $this->parameter->type == 404) && file_exists($functionsFile)) {
require_once $functionsFile;
if (function_exists('themeInit')) {
themeInit($this);
}
}
// 下面的代码块就是我们要新添加的同效functions.php文件函数。
/** 初始化皮肤函数2(指向我们新建的functions.php文件) */
$functionsFile01 = $this->_themeDir . 'functions2.php';
if ((!$this->_invokeFromOutside || $this->parameter->type == 404) && file_exists($functionsFile2)) {
require_once $functionsFile2;
}
functionsFile2是该函数的名称,在该文件外不会使用,可以随意修改,一共有三处要修改的地方,名字相同。
functions2.php是我们要创建functions.php同效文件的文件名
第二步 创建文件
在我们使用的主题目录(我以handsome为例)usr/themes/handsome/中创建functions2.php文件(创建的文件名就是我们上面修改的.php文件名),创建后打开,php表示格式如下:
<?php
if (!defined('__TYPECHO_ROOT_DIR__')) exit;
//代码
?>
将需要放入functions.php文件内的代码放入到这里
参考Typecho中文网作者雷鬼的文章:《Typecho的functions.php》
欢迎给我留言评论或关注公众号哦~
订阅我的公众号,扫描二维码或微信搜索【 比邻之地 】我会定期发布教程和分享,有问题欢迎留言,感谢你的关注!本文作者:若无特殊说明,则本文为原创文章,版权归上官大吉所有
本文链接:http://91guangju.com/index.php/archives/79/
版权说明:所有原创文章采用知识共享署名-非商业性使用4.0国际许可协议进行许可,经许可转载和修改,请务必注明文章来源且不可用于商业目的