WordPress主题functions技巧
作者:dianso 发布时间:September 8, 2010 分类:談博說博
以前每次折腾博客的时候,尤其是要往主题的 functions.php 添加功能的时候总要出错几次,还的重新上传文件才能解决,很麻烦。
也有好几个人留言说这样的情况了,我是暑假的时候在winysky博客上看到他说自己的主题结构,发现了 include all PHP script 这个功能,方法很简单。
在主题 functions.php 添加下面的代码:
define('theme_apps', TEMPLATEPATH.'/apps'); IncludeAll( theme_apps ); /** * include all PHP script */ 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; } } } }
然后在主题文件夹建立一个名为 apps 的文件夹,然后需要什么功能了,在这个文件夹内直接建立一个 php 文件就可以了,名称随意。
比如我要添加头像缓存这个功能,建立一个 php 文件,编码 utf-8,内容如下:
<?php /* Mini Gavatar Cache by Willin Kan. */ function my_avatar($avatar) { $tmp = strpos($avatar, 'http'); $g = substr($avatar, $tmp, strpos($avatar, "'", $tmp) - $tmp); $tmp = strpos($g, 'avatar/') + 7; $f = substr($g, $tmp, strpos($g, "?", $tmp) - $tmp); $w = get_bloginfo('wpurl'); $e = ABSPATH .'avatar/'. $f .'.jpg'; $t = 1209600; // 設定 14 天, 單位: 秒 if ( !is_file($e) || (time() - filemtime($e)) > $t ) { // 當頭像不存在或文件超過 14 天才更新 copy(htmlspecialchars_decode($g), $e); } else $avatar = strtr($avatar, array($g => $w.'/avatar/'.$f.'.jpg')); if ( filesize($e) < 500 ) copy($w.'/avatar/default.jpg', $e); return $avatar; } add_filter('get_avatar', 'my_avatar'); // -- END ----------------------------------------
然后在 wp 根目录建立个 avatar 文件夹就可以了,需要主题的是 php 文件头部一定要加 [php]<?php[/php]
这样有什么好处呢,如果代码有错误,直接删除相关的 php 文件就可以,不必每次都备份上传 functions 文件了。
----------------------------------------------- 唠叨分割线 ------------------------------------------------
开学了,我最近在干什么呢,课还是那样,不算多,交完了学费,排队真是困难,排了几个小时队,今天系里来人说让交钱时候小心,新班导携款逃跑。
偶尔研究下魔兽作弊,在 d3scene 这个国外论坛上找到了很多 dll 文件,直接注入就可以作弊了,比如刷钱,支持浩方,VS,Q 对战平台,局域网。
还有就是博客的 spam 留言太多了,几天登陆一次博客,删的手都累。
Dianso‘s Blog