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 留言太多了,几天登陆一次博客,删的手都累。

标签: wordpress, 主题, 技巧, functions

  • Wordpress插件 评论小秘书
  • Wordpress针对某些人
  • 一个短代码插件
  • 添加新评论 »

    表情