简述了WordPress3.0.1结构分析,你可以更加清楚的理解WordPress的工作原理以及系统结构特征。
安装流程
Index.php
加载WordPress环境和模版
Wp-blog-header.php
加载wp-load.php
文件中如果没有wp-config.php
会出现一个“试试创建一个配置”按钮
点击跳转到wp-admin下的setup-config.php
找到wp-config-sample.php并对其进行设置
Install.php进行安装
登录wp-login.php
工作模版
一个简单的WordPress网页由三个部分组成:头部结构、内容结构、底部结构。这些结构都是由你当前使用的WordPress主题模板文件生成的。
■头部包含你的XHTML网页顶部的所有信息,即
标签,还有例如, 标签和指向样式表的链接。它还包含了标签和你博客头部中可见的部分。(通常包括您网站的名称,也可以包括导航菜单、logo 、网站介绍等等信息)。■内容部分包含你的日志和页面, 即你网站的“肉”。
■底部一般是在你的页面最下方,包含了一些相关信息,像通往其它页面的链接或者你网站的分类导航菜单,版权和联系方式等其它信息。
index.php
包含两个功能:
■包含或者调用其它模板文件;
■包含WordPress主循环以从数据库获取信息(日志、页面、分类等等信息)。
有的主题包括sidebar,比如index.php下的那个搜索块就是一个sidebar.php
index.php的主要内容是在主循环中生成的。
模版的层次
对MySQL设置
//wp-settings.php//设置 WordPress 变量和包含文件
{{{wp-settings.php
wp_initial_constants( );//设置用户内存限制,如果内存不够当前WordPress使用,将内存设为当前WordPress大小
set_magic_quotes_runtime( 0 );//关闭php.ini文件中的magic_quotes_runtime
ini_set( ‘magic_quotes_sybase’, 0 );//设置php.ini文件中的magic_quotes_sybase
设置默认时区
wp_unregister_GLOBALS();//设置php.ini文件中的register_globals,使全局数组只能通过特定数组访问,如$_GET[]
清空全局变量
标准化$_SERVER变量
验证PHP版本以及MySQL对WordPress的扩展
查看favicon.ico
如果当前处于维护模式下,WordPress会抛出一个维护界面
设置数据库表前缀和数据库表列的格式说明符
WP cache进行重置或初始化,重置即调用Cache Object对象的reset方法,初始化即创建Cache Object的对象
如果WordPress还未安装,跳转安装
create_initial_taxonomies();//使taxonomies对plugins和themes可用
create_initial_post_types();//使posts对plugins和themes可用
//在taxonomies.php和post.php中这两个方法已经和init绑定
wp_set_internal_encoding();//代码本土化
do_action( ‘plugins_loaded’ );//触发插件
$wp_the_query =& new WP_Query();//实例化WordPress Query 对象,用以对数据库进行操作
$wp_rewrite =& new WP_Rewrite();//这个就是用于WordPress的Rewrite机制,所谓漂亮的链接
$wp =& new WP();//建立WordPress 对象
wp_templating_constants();//设置模版的位置为/wp-content/themes/twentyten,这个是wordpress的默认模版
$wp->init();//建立当前用户
do_action( ‘init’ );
do_action(‘wp_loaded’);
}}}wp-settings.php
}}}wp-config.php
}}}wp-load.php
wp();//调用WP类的main()成员方法
{{{wp()
$this->init();//初始化,获取当前用户信息
$this->parse_request($query_args);//解析请求
$this->send_headers();//发送头信息
$this->query_posts();//启动Loop
$this->handle_404();//操作404(URL地址不存在)
$this->register_globals();//注册全局变量
do_action_ref_array(’wp’, array(&$this));
}}}wp()
//template-loader.php//加载wordpress的模版,也就可以构建自己的插件和进行使用了
}}}wp-blog-header.php
}}}index.php
主循环
首先,WP检查他需要的文件是否都可用。
然后,他收集数据库中博主的默认设置。
其中包括,例如一页显示多少篇文章,评论是否可用等。
最后,当这些都准备好后,WP检查当前用户的请求。
这是WP网站上给的一个小index.php
*******************************
get_header();
if (have_posts()) :
while (have_posts()) :
the_post();
the_content();
endwhile;
endif;
get_sidebar();
get_footer();
?>
麻雀虽小,五脏俱全了
可以用这段代码,把wordpress文件夹下的/wp-content/themes/twentyten/index.php替换一下,虽然只能简单显示文章,但是效果不错哦
开始主循环
——————————————
——————————————
这么这段代码可以在twentyten下的loop.php中找到
作用:就是不断读取文章,直到没有
the_post()是为了让模版显示文章而存在的
最后,我来讲一下它的调用过程。
一下以代码注释的形式给出
//index.php //加载wp-blog-header.php
define(‘WP_USE_THEMES’, true); //不使用用户自定义的模板文件
{{{index.php
//wp-blog-header.php//加载WordPress的环境变量和模版
{{{wp-blog-header.php
//wp-load.php//设置ABSPATH,加载wp-config.php
{{{wp-load.php
define( ‘ABSPATH’, dirname(__FILE__) . ‘/’ );//定义 ABSPATH 常量作为此网站所有文档所在的目录
如果源代码出错,抛出相应错误。
查找wp-config.php是否存在。
如果不存在,查找上一级目录。
如果未找到wp-config.php,将让用户使用/wp-admin/setup-config.php进行创建。
//wp-config.php//建立WordPress环境变量,加载wp-settings.php
{{{wp-config.php
WordPress数据表
安装WordPress后有11张表
wp_commentmeta
wp_comments
wp_links
wp_options
wp_postmeta
wp_posts
wp_terms
wp_term_relationships
wp_term_taxonomy
wp_usermeta
wp_users
官方提供了这些表的一张database图
以下是官方文档的翻译
WordPress 3.0 表 (11)
表名
描述
用户界面相关
wp_commentmeta
每条评论信息称为元数据,它是在wp_commentmeta存储
插件通常会添加他们自己的信息发到该表。
wp_comments
在WordPress的评论都存储在wp_comments表。
读者通过评论来反馈发表的信息。评论被管理员管理,通过 Administration > Comments > Comments
wp_links
该wp_links持有相关资料到WordPress的链接功能进入链接。
Administration> Links > Add New
Administration> Links > Links
wp_options
设置 Administration > Settings 的选项被存放在wp_options 表中. 参考 option_name 选项和默认值.
Administration> Settings > General
Administration> Settings > Writing
Administration> Settings > Reading
Administration> Settings > Discussion
Administration> Settings > Privacy
Administration> Settings > Permalinks
Administration> Appearance > Widgets
wp_postmeta
每一个post的特征信息称为元数据,在wp_postmeta存储。有些插件可以添加自己的信息发到该表。
Administration> Posts > Add New
Administration> Pages > Add New
wp_posts
WordPress 数据的核心就是posts. 存放在wp_posts表中. Pages 和 navigation 目录信息也存储在这.
Administration> Posts > Add New
Administration> Posts > Posts
Administration> Pages > Add New
Administration> Pages > Pages
Administration> Media > Add New
Administration> Media > Library
Administration> Appearance > Menus
wp_terms
Posts、links和tags存储在此表中.
Administration> Posts > Post Tags
Administration> Posts > Categories
Administration> Links > Link Categories
Administration> Posts > Add New
Administration> Posts > Posts
Administration> Pages > Add New
Administration> Page > Pages
wp_term_relationships
在wp_terms表中Posts 相关的 categories 和 tags ,他们之间的联系 在wp_term_relationships表中维护. 他们各自的类别也保存在此表.
wp_term_taxonomy
此表描述了wp_terms中实体的分类 (category, link, 或者 tag) .
wp_usermeta
每个用户功能的信息称为元数据,它是在wp_usermeta 表中存储.
Administration> Users
wp_users
用户信息被存在 wp_users表中.
工作流程