没事总倒腾主题,全是仅凭兴趣,现在越做越复杂了,突然觉得功能多了也没啥意思,还是内容比较重要。不想搞那么复杂了,把现在的结构整理一下,换一下简单的风格。下面把我现在折腾的主题结构拿出来晒晒太阳,以后估计换个风格,还是喜欢简洁的风格

d

(点击放大)

主题目录结构,现在用的跟上图差不多,主要是学习K2主题和philna2的结构,模块化。

block里面放置主循环,loop都在这里。这样index里用:include_once(xxx)调用。最近发现最新的wp3.0默认主题里面也有这样一个theloop.php,这个优点就是不用在page、single、tag、archive等页面反复写同样的代码;当然,这样做代码本身的复杂程度增加了,多了许多if判断,两相比较难以取舍啊。

app目录里面的是一些折腾的代码,也就是那些所谓的“非插件”xx方法,这些函数全部被include进来,类似插件的形式,好处就是维护方便。随便整个新功能直接放app目录里就好,臃肿的function.php可以轻松下了。其实我觉得非插件也不见得咋样,差别其实不大。相关代码:

<?php

// app dir
define('winysky_app', TEMPLATEPATH.'/app');
IncludeAll( winysky_app );
/**
 * include all PHP script
 * @param string $dir
 * @return unknown_type
 */
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;
			}
		}
	}
}

admin目录就是后台页面,都是收集整理的一些后台选项,现在觉得自己用完全没意义,还是直接写在主题里比较好。

js目录是所有js代码,都交给根目录下js_home.php和js_single.php两个文件输出,这样做是学philna的方法,头部先用上gzip,把js子目录下需要加载的js全部include成为一个php文件,压缩后在footer输出。合并js可以加快载入速度,但是合并后又不利于维护,所以这样做的好处显而易见,两者兼顾。例如:

<?php
//gizp
if ( extension_loaded('zlib') && !ini_get('zlib.output_compression') && ini_get('output_handler') != 'ob_gzhandler' && ((version_compare(phpversion(), '5.0', '>=') && ob_get_length() == false) || ob_get_length() === false) ) {
	ob_start('ob_gzhandler');
}
header("Cache-Control: max-age=3600, public");
header("Pragma: cache");
header( "Vary: Accept-Encoding" ); // Handle proxies
header('Content-Type: text/javascript; charset: UTF-8');

//include all js
$jsFiles = array('jQuery', 'easing','scrollTo','jquery.lazyload','home');

$jsDir = dirname(__FILE__) . '/js';

foreach ($jsFiles as $file){
	$devfile = $jsDir.'/dev/'.$file.'.js';
	$minfile = $jsDir.'/'.$file.'.js';
	if(file_exists($minfile)){
		include_once $minfile;
	}elseif(file_exists($devfile)){
		include_once $devfile;
	}
}
  1. 小罗 (2010.07.19 at 13:30) 17楼

    老鸟啊!

  2. zwwooooo (2010.07.20 at 09:52) 18楼

    好复杂,我讨厌复杂

  3. 阿斯顿诺 (2010.07.20 at 22:48) 19楼

    这主题和MONO-LAB的。。额。你懂的

  4. WSQ (2010.07.22 at 20:32) 20楼

    結構不算複雜,不過是你組織得有點凌亂而已。

    • winy() (2010.07.22 at 22:06)

      @WSQ 是,还是简约点好

  5. A.shun (2010.07.22 at 20:47) 21楼

    好复杂 :arrow:
    模块化,膜拜啊

  6. zchiy2k (2010.07.28 at 19:03) 22楼

    很时髦的结构图~
    不知能否有时间放出个主题demo下载,学习一下你的主题结构。

    • winy() (2010.07.28 at 19:13)

      @zchiy2k 还是直接看K2的或者phina2的主题吧,我也是学习的

  7. 掌柜的马甲 (2010.08.05 at 22:38) 23楼

    loop的话感觉具体要改某一个页面会比较麻烦....

  8. 天天天蓝 (2010.08.06 at 11:56) 24楼

    博主很强大,都能自己研究架构了;
    还有问一下,那个结构模型图用什么软件做出了的?以前也见过

评论分页: 1 2 3 4

发布评论

邮箱(必填)

换个背景