zoukankan      html  css  js  c++  java
  • wordpress 目录、数据结构和解析原理

    **********

    根目录

    **********

    1.index.php:wordpress核心索引文件,即博客输出文件。

    2.license.txt:WordPress GPL许可证文件。

    3.my-hacks.php:定义了博客输出之前处理的追加程序。默认安装中并没有这个文件,但如果存在,它就会被管理页面引用。

    4.readme.html:WordPress安装导言。

    5.wp-atom.php:输出Atom信息聚合内容。

    6.wp-blog-header.php:根据博客参数定义博客页面显示内容。

    7.wp-cron.php

    8.wp-comments-post.php:接收评论,并把其添加到数据库。

    9.wp-commentsrss2.php:用来生成日志评论的RSS2信息聚合内容。

    10.wp-config-sample.php:把WordPress连接到MySQL数据库的示例配置文件。

    11.wp-config.php:这是真正把WordPress连接到MySQL数据库的配置文件。默认安装中虽不包括它,但由于WordPress运行需要这一文件,因此,用户需要编辑这个文件以更改相关设置。

    12.wp-feed.php:根据请求定义feed类型并其返回feed请求文件。

    13.wp-links-opml.php:生成OPML格式的链接(通过WordPress管理菜单添加)列表。

    14.wp-login.php:定义注册用户的登陆页面。

    15.wp-mail.php:用来获取通过邮件提交的博文。这个文件的URL通常被添加到cron任务中,这样cron就会定期检索文件并接收邮件日志。

    16.wp-pass.php:审核受密码保护文章的密码并显示被保护文章。

    17.wp-rdf.php:生成RDF信息聚合内容。

    18.wp-register.php:允许新用户通过联机表单注册用户名。

    19.wp-rss.php:生成RSS信息聚合内容。

    20.wp-rss2.php:生成RSS2信息聚合内容。

    21.wp-settings.php:运行执行前的例行程序,包括检查安装是否正确,使用辅助函数,应用用户插件,初始化执行计时器等等。

    22.wp-trackback.php:处理trackback请求。

    23.wp.php:显示博客日志的简单模板。并没有什么神奇之处,但包括了部分index.php内容。

    24.xmlrpc.php:处理xmlrpc请求。用户无需通过内置的网络管理界面就可发布文章。

    **********

    wp-admin

    **********

    1.wp-admin/admin.php:管理文件的核心文件。用来连接数据库,整合动态菜单数据,显示非核心控制页面等。

    2.wp-admin/admin-db.php

    3.wp-admin/admin-footer.php:定义所有管理控制台的页脚。

    4.wp-admin/admin-functions.php:定义了管理控制台使用的多种函数。5.wp-admin/admin- header.php:定义了管理控制台的上半部分内容,包括菜单逻辑 (menu logic)的 menu-header.php文件。

    6.wp-admin/bookmarklet.php:使用书签功能时,定义弹出页面。撰写日志时使用默认的edit-form.php文件。

    7.wp-admin/categories.php:定义管理页面的类别管理。参考: Manage – Categories

    8.wp-admin/cat-js.php

    9.wp-admin/edit.php:定义管理页面的日志管理。参考:  Manage – Posts

    10.wp-admin/edit-comments.php:定义管理页面的评论管理。参考:  Manage – Comments

    11.wp-admin/edit-form-advanced.php:定义管理页面的日志高级编辑形式管理,包括post.php。参考:  Write – Write Post – Advanced

    12.wp-admin/edit-form.php:定义管理页面的日志简单编辑形式管理,包括post.php。参考:  Write – Write Post

    13.wp-admin/edit-form-comment.php:编辑特定日志评论。

    14.wp-admin/edit-form-ajax-cat.php

    15.wp-admin/edit-link-form.php

    16.wp-admin/edit-page-form.php:定义管理模块页面的页面编辑,包括post.php和page-new.php。参考: Write – Write Page

    17.wp-admin/edit-pages.php:定义管理模块页面的页面管理。参考:  Manage – Pages

    18.wp-admin/execute-pings.php

    19.wp-admin/import.php

    20.wp-admin/index.php:默认管理页面。根据用户请求显示相应的页面。

    21.wp-admin/inline-uploading.php

    22.wp-admin/install-helper.php:定义数据库维护函数,包括popular-in-plugins maybe_create_table() 和maybe_add_column()。

    23.wp-admin/install.php:安装WordPress。

    24.wp-admin/link-add.php:链接添加。参考:  Links – Add Link

    25.wp-admin/link-categories.php:链接分类管理。参考: Links – Link Categories

    26.wp-admin/link-import.php:导入链接。参考: Links – Import Links

    27.wp-admin/link-manager.php:链接管理。参考:  Links – Manage Links

    28.wp-admin/link-parse-opml.ph:导入链接时,用来解析OPML文件。

    29.wp-admin/list-manipulation.js

    30.wp-admin/list-manipulation.php

    31.wp-admin/menu-header.php:用于在管理界面显示菜单。

    32.wp-admin/menu.php:定义了默认管理菜单结构。

    33.wp-admin/moderation.php:定义了评论审核函数。

    34.wp-admin/options.php:升级后,用来更改所有设置。

    35.wp-admin/opt(www.111cn.net)ions-discussion.php:管理评论和trackback相关选项。参考:  Options –Discussion

    36.wp-admin/options-general.php:管理基本配置选项。参考: Options – General

    37.wp-admin/options-head.php

    38.wp-admin/options-misc.php:设置文件上传,链接跟踪,自定义”hacks”等相关选项。参考:Options– Miscellaneous

    39.wp-admin/options-permalink.php:管理永久链接选项。参考: Options – Permalinks

    40.wp-admin/options-reading.php:设置如何把网站信息发送到读者浏览器或其它应用程序。参考: Options– Reading

    41.wp-admin/options-writing.php:管理日志撰写界面。参考:Options – Writing

    42.wp-admin/page-new.php:创建新页面。

    43.wp-admin/plugin-editor.php:编辑插件文件。

    44.wp-admin/plugins.php:管理插件。

    45.wp-admin/post.php:创建新日志。

    46.wp-admin/profile-update.php

    47.wp-admin/profile.php:管理个人资料或配置。

    48.wp-admin/setup-config.php:安装时,用来创建wp-config.php文件。

    49.wp-admin/sidebar.php

    50.wp-admin/templates.php:编辑服务器可写文件。

    51.wp-admin/theme-editor.php:编辑特定主题中的文件。

    52.wp-admin/themes.php:管理主题。

    53.wp-admin/update-links.php

    54.wp-admin/upgrade-functions.php:定义了版本升级函数。

    55.wp-admin/upgrade-schema.php:定义了升级中使用的默认表格结构和选项。

    56.wp-admin/upgrade.php:版本升级。

    57.wp-admin/user-edit.php:编辑用户。

    58.wp-admin/users.php:管理用户。

    59.wp-admin/wp-admin.css:定义了管理控制台的默认样式表。

    60.wp-admin/xfn.js

    **********

    wp-includes

    **********

    wp-includes目录

    1.wp-includes/cache.php

    2.wp-includes/capabilities.php

    3.wp-includes/class-IXR.php:Incutio XML-RPC库。包括了 XML RPC支持函数。由http://scripts.incutio.com/xmlrpc/提供支持。

    4.wp-includes/classes.php:包括了基本的类,如核心文章提取机制WP_Query和改写管理WP_Rewrite。

    5.wp-includes/class-pop3.php:包括了支持使用POP邮箱的类。可供wp-mail.php 使用。

    6.wp-includes/class-snoopy.php:Snoopy是一个PHP类,用来模仿Web浏览器的功能,它能自动完成检索网页和发送表单的任务。

    7.wp-includes/comment-functions.php

    8.wp-includes/default-filters.php

    9.wp-includes/feed-functions.php

    10.wp-includes/functions-compat.php:即新版本PHP中用来支持老版本PHP的函数文件。

    11.wp-includes/functions-formatting.php:用于清理XHTML和用特定字符集正确格式化文本。

    12.wp-includes/functions-post.php:定义了在数据库中管理日志,查询用户权限,提取和撰写评论等函数。

    13.wp-includes/functions.php:包含许多重要的支持函数,它是WordPress中最大的文件,函数数量几乎是第二大文件的两倍。

    14.wp-includes/gettext.php:PHP-gettext GPL 翻译库组成部分。

    15.wp-includes/kses.php:用来渲染和过滤日志或评论中的HTML。

    16.wp-includes/links.php:用来管理和使用WordPress的链接功能。

    17.wp-includes/locale.php:用来替代默认的星期和月份值。

    18.wp-includes/pluggable-functions.php

    19.wp-includes/registration-functions.php

    20.wp-includes/rss-functions.php

    21.wp-includes/streams.php:定义了包装文件流和字符流的类。

    22.wp-includes/template-functions-author.php:包含了与日志作者或评论人相关的主题函数。

    23.wp-includes/template-functions-category.php:包含了与类别相关的主题函数。

    24.wp-includes/template-functions-comment.php:包含了与评论相关的主题函数。

    25.wp-includes/template-functions-general.php:包含了常规主题函数。

    26.wp-includes/template-functions-links.php:包含了与链接相关的主题函数。

    27.wp-includes/template-functions-post.php:包含了与日志相关的主题函数。

    28.wp-includes/template-functions.php:包含了以上所有”template-”文件。

    29.wp-includes/template-loader.php

    30.wp-includes/vars.php:用来设置杂项变量。

    31.wp-includes/version.php:用来设置当前使用的WordPress版本。

    32.wp-includes/wp-db.php:包含了用来连接MySQL数据库的函数。

    33.wp-includes/wp-l10n.php:提供支持多语言版本的函数

    2、数据结构

    wordpress共有 11个数据表,按照功能划分为 5 类

    用户信息:wp_users(存储评论)、wp_usermeta(存储用户的元数据)

    链接信息:wp_links(存储友情链接)

    文章及评论信息:wp_posts(存储文章)、wp_postmeta(存储文章的元数据)、wp_comments(存储评论)、wp_commentmeta(存储评论元数据)

    对分类、链接分类,标签管理:wp_terms(存储每个目录标签)、wp_term_relationships(存储每个文章、链接和对应分类的关系)、wp_term_taxonomy(存储每个目录、标签所对应的分类)

    全局设置信息:wp_options(存储WordPress系统选项和插件、主题配置)

    wordpress <wbr>目录、数据结构和解析原理

    在WordPress的数据库结构中,存储系统选项和插件配置的wp_options表是比较独立的结构,采用了key-value模式存储。post,comment,user 则是三个基本表加上拓展表的组合。以wp_users为例,wp_users已经存储了每个用户会用到的基本信息,比如 login_name、display_name、 password、email等常用信息,存储一些不常用的数据,是将数据存在 wp_usermeta中。

    3、工作原理

    Wordpress是一个单入口的文件,所有的前端处理都必须经过index.php,这是通过修改web服务器的rewrite规则来实现的。

    第一步:加载index.php文件

    wordpress <wbr>目录、数据结构和解析原理

    第二步:加载wp_blog_header.php文件

    wordpress <wbr>目录、数据结构和解析原理

    a、  对$wp_did_header进行赋值,这样如果代码块已经执行过,判断就会失败,代码块就不会再执行。这种做法可以确保wp-blog-header.php文件只执行一次

    b、  加载WP根目录下wp-load.php文件,执行初始化工作,如初始化常量、环境、加载类库和核心代码等完成WordPress环境启动工作,如加载wp-includes目录下functions.php(函数库)、class-wp.php(类库)、plugin.php(插件)、pomo目录(语言包)、query.php(数据请求)、theme.php(加载主题文件)、post-template.php(文章模板)、comment.php(评论模板)、rewrite.php(URL重写)。

    c、  执行wp()函数,执行内容处理工作,如根据用户的请求调用相关函数获取和处理数据,为前端展示准备数据

    d、  加载根目录绝对路径下wp-includes目录中template-loader.php文件,执行主题应用工作,如根据用户的请求加载主题模板。

    第三步:加载wp_load.php文件 (初始化)

    a、  加载wp_config.php文件

    该文件初始化常量(如:定义绝对路径、设定功能文件及内容文件路径等)并加载wp-config.php文件

    b、  加载wp_settings.php文件

    该文件主要用于创建和定义常见变量、函数和类的库来为WordPress运行做准备,也就是说WordPress运行过程中使用的大多数变量、函数和类等核心代码都是在这个文件中定义的。这个文件相当于一个总控制器,很多常量定义、函数定义等都是在其他文件中完成,而该文件的作用就是执行那些文件或执行在那些文件中已经定义好的函数。

    第四步:执行wp()函数

    wordpress <wbr>目录、数据结构和解析原理

    wordpress <wbr>目录、数据结构和解析原理

    a、  调用$wp->main(),即调用对象$wp的main()方法,该对象是class-wp.php文件中WP类实例化得到的,该类主要用于启动WordPress环境

    b、  判断$wp_the_query是否设置,若未设置将其赋值为$wp_query,该对象是query.php文件中WP_Query类实例化得到的,该类作用强大,几乎WP所需要的所有数据信息都是由该类得到的,所以内容的准备工作基本都是这段代码来完成的,

    第五步:加载template-loader.php文件

    a、如果常量WP_USE_THEMES存在且值为真,则判断页面类型同时给$template变量赋相应值;其中,判断页面类型的函数如is_404()位于wp-includes目录下query.php文件,该函数返回对象$wp_query中is_404()方法

    b、若is_404()为false则继续往下判断是否是其他页面;

    c、若为true则给$template赋值为get_404_template(),该函数位于wp-includes目录下template.php文件,它返回get_query_template('404'),

    d、而该函数将页面类型传入数组$templates并应用调用函数locate_template($templates)且应用过滤器;

    e、locate_template()函数根据传入数组在主题中查找到相应的文件然后交给load_template()函数然后使用require加载,最终将用户需要的页面呈现出来;

    wordpress <wbr>目录、数据结构和解析原理

    4、接口

    对外的接口形式有:借助应用插件、二次开发

    a、添加json-api 插件

       http://test.wordpress.imobile.com.cn/?json=get_favorite_count    //获得文章收藏数

    http://test.wordpress.imobile.com.cn/?json=get_author_index     //获得作者列表

       可在wp-contentpluginsjson-apicontrollerscore.php文件下添加方法

    b、二次开发

       http://test.wordpress.imobile.com.cn/wp-admin/wp_test_api.php?post_title=我是来测试的

       在 wp-admin下创建wp_test_api.php 接口文件

    5、wordpress特点

    a、  安装简单,操作方便

    b、  具有很高的扩展性,插件、模板重多。插件安装目录:wp-content/plugins/ 模板安装目录:wp-content/themes/

    c、  wordpress 是 MC结构,是通过php直接调用 include 里面的函数,封装了N多函数,几乎所有的业务包括与数据库的连接,查询等等操作也是通过函数完成。

    d、  wordpress数据结构类似于NoSql类型数据库,基本上类似于 类型—键值名—键值,都是键值队的形式,

  • 相关阅读:
    关于DISCUZ!NT发布的问题整理!
    javascript 文字滚动显示[zhuan ]
    Bot Framework Emulator应用与调试
    Bot Framework的简单实现
    命名空间在扩展方法中的妙用
    Error:Execution failed for task ':app:transformClassesWithDexForDebug"
    C#中WebApi接口传参不再困惑:传参详解
    贝塞尔曲线
    从枚举值获取对应的文本描述
    常用正则表达式收集
  • 原文地址:https://www.cnblogs.com/wpxuexi/p/6637268.html
Copyright © 2011-2022 走看看