没事总倒腾主题,全是仅凭兴趣,现在越做越复杂了,突然觉得功能多了也没啥意思,还是内容比较重要。不想搞那么复杂了,把现在的结构整理一下,换一下简单的风格。下面把我现在折腾的主题结构拿出来晒晒太阳,以后估计换个风格,还是喜欢简洁的风格
(点击放大)
主题目录结构,现在用的跟上图差不多,主要是学习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; } }
老鸟啊!
好复杂,我讨厌复杂
这主题和MONO-LAB的。。额。你懂的
@阿斯顿诺 早说了是扒皮的
結構不算複雜,不過是你組織得有點凌亂而已。
@WSQ 是,还是简约点好
好复杂
模块化,膜拜啊
@A.shun 还好,不算很复杂
很时髦的结构图~
不知能否有时间放出个主题demo下载,学习一下你的主题结构。
@zchiy2k 还是直接看K2的或者phina2的主题吧,我也是学习的
loop的话感觉具体要改某一个页面会比较麻烦....
@掌柜的马甲 原来是茶馆的掌柜,经常去你那边玩
博主很强大,都能自己研究架构了;
还有问一下,那个结构模型图用什么软件做出了的?以前也见过
@天天天蓝 是freemind
目前还没有trackbacks.