分享

wordpress 加载顺序a

 昵称7154331 2011-10-21

转自:http://blog./2008/07/theme.html,i.

一、主题包各文件解释

header.php:这个文件中包罗博客的题目(title),刻画(description),tag,以及css等消息。
sidebar.php:这个文件掌控你侧边栏中的揭示方法。
footer.php:掌控版面底端的揭示,包罗ICP,版权申明等消息。
archive.php:被体系调用用于揭示用户提交分类,按时期归档,tag等查询后卖弄的版面。下面代码显露了archive.php内部是如何识别不同的查询央求的:

<?php if (is_category()) { ?>
<div class=”pagetitle”>‘<?php single_cat_title(); ?>’ 分类下的文章</div>
<!–显现下面是哪个分类下的文章列表,‘ ’ 离别是左右单引号,下同–>
<?php } elseif( is_tag() ) { ?>
<div class=”pagetitle”>‘<?php single_tag_title(); ?>’ 标签下的文章</div>
…………
<?php } elseif (isset($_GET['paged']) && !empty($_GET['paged'])) { ?><div class=”pagetitle”>日志归档</div>
<?php } ?>

search.php:用于显现用户提交搜查后显现的页面。
searchform.php:搜查栏表单,被header.php调用,网络流_48156
single.php:用于全文卖弄post页面。
page.php:用于全文卖弄page页面,The.Rose.Has.Teeth.in.the.Mouth.of.a.Beast
function.php:寄放自定义的函数,被其余文件包括和调用。
comments.php:留神谈论模板,被single.php,page.php等必要评价性能的网页调用。
style.css:全部网站格局和显现形式。
screenshot.jpg:用于在后台抉择主题版面里显现这个主题的截图,wordpress会主动在主标题录下寻找screenshot.*文件。二、从源码看主题的调用历程

当博览器向apache发送央求要取得博客主页的HTML代码时,./index.php被调用。./index.php中的require(‘./wp-blog-header.php’);调用./wp-blog-header.php。
而./wp-blog-header.php做了一些链接数据库包罗头文件等解决,中间有两件事情与主题调用有关:
1、有require_once( dirname(__FILE__) ./wp-includes/functions.php’);
而/wp-includes/functions.php中包罗进了./wp-includes/theme.php,此地定义了get_home_template()。

function get_home_template() {//回来所要加载的主题
$template = ”;
if ( file_exists(TEMPLATEPATH . “/home.php”) )
$template = TEMPLATEPATH . “/home.php”;
elseif ( file_exists(TEMPLATEPATH . “/index.php”) )
$template = TEMPLATEPATH . “/index.php”;
return apply_filters(‘home_template’, $template);

中间apply_filters()的作用是:将$template hook到tag=’home_template’的filters上并回来$template,也即使主题包的路径。
2、有require_once(ABSPATH . WPINC . ‘/template-loader.php’);
调用了./wp-includes/template-loader.php(ABSPATH代表./, WPINC代表/wp-includes)。
而./wp-includes/template-loader.php中有:

} else if ( is_home() && $template = get_home_template() ) {
include($template);
return;

get_home_template()将 主题包路径归来给$template,,此地的include($template);语句就把./wp-content/themes/主题名/index.php(譬如阿德日志目前所用的主题路径就是./wp-content/ade/index.php)包括进入了。于是开端执到./wp-content/themes/ade/index.php里边的代码了,接下来就是该主题内部的事情了。三、主题被调用后,首页的加载历程

各个页面的加载历程大概相像,下面以首页为例解释。显露首页的时候,Wordpress只调用index.php,在index.php定义了要加载那些模板以及其加载次序。平常情形是:header.php->页面首要内容(index,page,signle等页面都有其自己的定义)->sidebar.php->footer.php

其实对于一个可以供给Theme的过程而言,在过程的构架上一定要完成数据和体现的分别。平常我们所说的MVC(Model、View、Controller)架构即使这个含义。

在WordPress中,是这么来得逞数据和完成的分别的。
1. XHTML:用Div等用来体现数据,CSS来刻画这些数据的体现模式,用这种方法来完成数据和体现的分别;
2. Template的方法:页面各个局部独自保留为一个一个.php文件(如上面的sidebar.php,footer.php等),页面加载时候调用所需代码。

譬如<?php comments_template(); ?>就回来了留言框的所需代码。

在譬如index中有:
<?php get_footer(); ?>
<?php get_header(); ?>
“get_header”和”get_footer”离别用来取得该页的Header和Footer,其实即使两个DIV块儿。index的主体同样是一个大的Div(<div id=”content”>),在该Theme的CSS中即能够看到对这个DIV的体现定义,包罗字体、背景色泽、边距等等。此地单一的 id=content来告知博览器,将数据库操纵封装到Javabean,这个标签内的内容显露在css中定义的content局部里边。一、常见差错1# :多次拷贝字符串 

      本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
      转藏 分享 献花(0

      0条评论

      发表

      请遵守用户 评论公约

      类似文章 更多