php wordpress框架,WordPress框架结构已分析

简述了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表中.

工作流程

你可能感兴趣的:(php,wordpress框架)