简单说明
在Typecho系统中,有些主题下的functions.php文件被加了密,但有的魔改又需要将代码放入functions.php文件中。
据说可以直接建立一个php文件然后引入,但由于我没有学过php不知道怎么引入,搜百度也没找到,于是我决定啃主题设计方法。最终在Typecho中文网找到了functions.php文件的实现原理。
看完原理后我就尝试了新建一个同效果的functions.php文件,结果成功了。
博主环境
Typecho版本:1.1 (17.10.30)
测试主题:handsome6.0
php7
实现方式
第一种方法(简单)
步骤1.在typecho主题下的component文件夹中建立一个xxx.php
文件,以标签总数为例:
<?php
//标签总数
function biaoqianzongshu() {
Typecho_Widget::widget('Widget_Metas_Tag_Cloud')->to($tags);
$z=0;
if($tags->have()) {
while ($tags->next()){
$z++;
}
}
$unit = '个';
$tagsSum =sprintf('%.0lf %s',$z, $unit);
return $tagsSum;
}
?>
步骤2.再在同目录下的header.php
文件中加入如下代码:
<?php include_once('aaa.php'); ?> //在 <!DOCTYPE HTML> 上方加入这一句
<!DOCTYPE HTML>
<?php echo Content::exportHtmlTag($this->options->indexsetup)?> lang="<?php _me("zh-cmn-Hans") ?>">
第二种方法(麻烦)
步骤1.打开typecho安装目录var/Widget/
中的Archive.php
文件,搜索functionsFile(typecho1.1版本大概在1373行),然后我们就会看到/** 初始化皮肤函数 */
的注释,这串代码就是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);
}
}
/** 初始化皮肤函数01 */
$functionsFile01 = $this->_themeDir . 'functions01.php';
if ((!$this->_invokeFromOutside || $this->parameter->type == 404) && file_exists($functionsFile01)) {
require_once $functionsFile01;
}
这其中,/** 初始化皮肤函数01 */
下面的代码块就是我们要新添加的同效functions.php
文件函数。
functionsFile01是该函数的名称,在该文件外不会使用,可以随意修改,一共有三处要修改的地方,名字相同。
functions01.php是我们要创建functions.php
同效文件的文件名,可以随意修改,但一定要记住,呆会还要创建它。
这两个名称注意区分,一个带File,一个不带File,我们待会要创建的是不带File的,还有File是我为了给你们区分才说的,你们修改的时候可以都不带。修改完以后记得保存,然后退出。
步骤2.在我们使用的主题目录(我以handsome为例)usr/themes/handsome/
中创建functions01.php
文件(创建的文件名就是我们上面修改的.php文件名,以你修改的为准),创建后打开,php表示格式如下:
<?php
if (!defined('__TYPECHO_ROOT_DIR__')) exit;
//浏览总数
function theAllViews(){
$db = Typecho_Db::get();
$row = $db->fetchAll('SELECT SUM(VIEWS) FROM `typecho_contents`');
echo number_format($row[0]['SUM(VIEWS)']);}
?>
将原本需要放入functions.php
文件内的代码块放入到这里即可。
浏览总数代码块是我演示给你们看的,不会调用就不要照搬,有什么要用的就像浏览总数这样摆放即可。
本文转自:衰兰送客
评论 (0)