最新公告
  • 欢迎您光临大资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • WordPress框架结构已分析

    WordPress框架结构已分析 最后编辑:2020-10-21
    增值服务: 自动发货 使用说明 安装指导 环境配置二次开发BUG修复

    简述了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网页顶部的所有信息,即<head> 标签,还有例如<doctype>, <meta>标签和指向样式表的链接。它还包含了<body>标签和你博客头部中可见的部分。(通常包括您网站的名称,也可以包括导航菜单、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

    *******************************

    <?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替换一下,虽然只能简单显示文章,但是效果不错哦

    开始主循环

    ——————————————

    <?php if (have_posts()) : ?>

    <?php while (have_posts()) : the_post(); ?>

    ——————————————

    这么这段代码可以在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表中.

    工作流程

    文章来自大资源网https://www.dzy10.com转载请注明出处,并保留本链接,谢谢!

    猜你在找

    • 2020-06-03Hi,初次和大家见面了,请多关照!

    售后服务:

    • 售后服务范围 1、商业模板使用范围内问题免费咨询
      2、源码安装、模板安装(一般 ¥50-300)服务答疑仅限SVIP用户
      3、单价超过200元的模板免费一次安装,需提供服务器信息。
      付费增值服务 1、提供dedecms模板、WordPress主题、discuz模板优化等服务请详询在线客服
      2、承接 WordPress、DedeCMS、Discuz 等系统建站、仿站、开发、定制等服务
      3、服务器环境配置(一般 ¥50-300)
      4、网站中毒处理(需额外付费,500元/次/质保三个月)
      售后服务时间 周一至周日(法定节假日除外) 9:00-23:00
      免责声明 本站所提供的模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: 3482249445@qq.com),我们会及时删除,给您带来的不便,我们深表歉意!

    Hi, 如果你对这款模板有疑问,可以跟我联系哦!

    联系作者
    升级SVIP尊享更多特权立即升级
    My title page contents
    召唤伊斯特瓦尔