WordPress
2016-11-14 10:48:30 0 举报
WordPress是如何运作的
作者其他创作
大纲/内容
require( ABSPATH . WPINC . '/class-wp-walker.php' );require( ABSPATH . WPINC . '/class-wp-ajax-response.php' );require( ABSPATH . WPINC . '/formatting.php' );require( ABSPATH . WPINC . '/capabilities.php' );require( ABSPATH . WPINC . '/class-wp-roles.php' );require( ABSPATH . WPINC . '/class-wp-role.php' );require( ABSPATH . WPINC . '/class-wp-user.php' );require( ABSPATH . WPINC . '/query.php' );require( ABSPATH . WPINC . '/date.php' );require( ABSPATH . WPINC . '/theme.php' );require( ABSPATH . WPINC . '/class-wp-theme.php' );require( ABSPATH . WPINC . '/template.php' );require( ABSPATH . WPINC . '/user.php' );require( ABSPATH . WPINC . '/class-wp-user-query.php' );require( ABSPATH . WPINC . '/session.php' );require( ABSPATH . WPINC . '/meta.php' );require( ABSPATH . WPINC . '/class-wp-meta-query.php' );require( ABSPATH . WPINC . '/class-wp-metadata-lazyloader.php' );require( ABSPATH . WPINC . '/general-template.php' );require( ABSPATH . WPINC . '/link-template.php' );require( ABSPATH . WPINC . '/author-template.php' );require( ABSPATH . WPINC . '/post.php' );require( ABSPATH . WPINC . '/class-walker-page.php' );require( ABSPATH . WPINC . '/class-walker-page-dropdown.php' );require( ABSPATH . WPINC . '/class-wp-post-type.php' );require( ABSPATH . WPINC . '/class-wp-post.php' );require( ABSPATH . WPINC . '/post-template.php' );require( ABSPATH . WPINC . '/revision.php' );require( ABSPATH . WPINC . '/post-formats.php' );require( ABSPATH . WPINC . '/post-thumbnail-template.php' );require( ABSPATH . WPINC . '/category.php' );require( ABSPATH . WPINC . '/class-walker-category.php' );require( ABSPATH . WPINC . '/class-walker-category-dropdown.php' );require( ABSPATH . WPINC . '/category-template.php' );require( ABSPATH . WPINC . '/comment.php' );require( ABSPATH . WPINC . '/class-wp-comment.php' );require( ABSPATH . WPINC . '/class-wp-comment-query.php' );require( ABSPATH . WPINC . '/class-walker-comment.php' );require( ABSPATH . WPINC . '/comment-template.php' );require( ABSPATH . WPINC . '/rewrite.php' );require( ABSPATH . WPINC . '/class-wp-rewrite.php' );require( ABSPATH . WPINC . '/feed.php' );require( ABSPATH . WPINC . '/bookmark.php' );require( ABSPATH . WPINC . '/bookmark-template.php' );require( ABSPATH . WPINC . '/kses.php' );require( ABSPATH . WPINC . '/cron.php' );require( ABSPATH . WPINC . '/deprecated.php' );require( ABSPATH . WPINC . '/script-loader.php' );require( ABSPATH . WPINC . '/taxonomy.php' );require( ABSPATH . WPINC . '/class-wp-term.php' );require( ABSPATH . WPINC . '/class-wp-term-query.php' );require( ABSPATH . WPINC . '/class-wp-tax-query.php' );require( ABSPATH . WPINC . '/update.php' );require( ABSPATH . WPINC . '/canonical.php' );require( ABSPATH . WPINC . '/shortcodes.php' );require( ABSPATH . WPINC . '/embed.php' );require( ABSPATH . WPINC . '/class-wp-embed.php' );require( ABSPATH . WPINC . '/class-wp-oembed-controller.php' );require( ABSPATH . WPINC . '/media.php' );require( ABSPATH . WPINC . '/http.php' );require( ABSPATH . WPINC . '/class-http.php' );require( ABSPATH . WPINC . '/class-wp-http-streams.php' );require( ABSPATH . WPINC . '/class-wp-http-curl.php' );require( ABSPATH . WPINC . '/class-wp-http-proxy.php' );require( ABSPATH . WPINC . '/class-wp-http-cookie.php' );require( ABSPATH . WPINC . '/class-wp-http-encoding.php' );require( ABSPATH . WPINC . '/class-wp-http-response.php' );require( ABSPATH . WPINC . '/class-wp-http-requests-response.php' );require( ABSPATH . WPINC . '/widgets.php' );require( ABSPATH . WPINC . '/class-wp-widget.php' );require( ABSPATH . WPINC . '/class-wp-widget-factory.php' );require( ABSPATH . WPINC . '/nav-menu.php' );require( ABSPATH . WPINC . '/nav-menu-template.php' );require( ABSPATH . WPINC . '/admin-bar.php' );require( ABSPATH . WPINC . '/rest-api.php' );require( ABSPATH . WPINC . '/rest-api/class-wp-rest-server.php' );require( ABSPATH . WPINC . '/rest-api/class-wp-rest-response.php' );require( ABSPATH . WPINC . '/rest-api/class-wp-rest-request.php' );
判断$wp_the_query是否设置,若未设置将其赋值为$wp_query,该对象是query.php文件中WP_Query类实例化得到的,几乎WP所需要的所有数据信息都是由该类得到的,内容的准备工作基本都是这段代码来完成的
template-loder.php主题应用阶段
wp-settings.php
执行init()方法,该方法用于设置当前用户,它调用wp_get_current_user()函数,即设置全局变量$current_user;调用parse_request()函数,对查询参数进行解析。使用parse_str()函数将查询解析到数组中,加载rewrite解析URL,基于请求设置查询变量,同时也执行了一系列过滤器和动作用于进一步操作结果调用send_headers()函数,发送附加的http头信息。调用query_posts()函数,进行查询操作。调用handle_404()函数,处理404错误。调用register_globals()函数,注册全局变量。调用do_action_ref_array()函数(在wp-includes/plugin.php文件中),设置本对象作为wp钩子上的函数的参数。
index.php
加载wp-load.php初始化阶段
如果常量WP_USE_THEMES存在且值为真,则判断页面类型同时给$template变量赋相应值;其中,判断页面类型的函数如is_404()位于wp-includes目录下query.php文件,该函数返回对象$wp_query中is_404()方法,若is_404()为false则继续往下判断是否是其他页面;若为true则给$template赋值为get_404_template(),该函数位于wp-includes目录下template.php文件,它返回get_query_template('404'),而该函数将页面类型传入数组$templates并应用调用函数locate_template($templates)且应用过滤器;locate_template()函数根据传入数组在主题中查找到相应的文件然后交给load_template()函数然后使用require加载,最终将用户需要的页面呈现出来
调用$wp-main(),即调用对象$wp的main()方法,该对象是class-wp.php文件中WP类实例化得到的,该类主要用于启动WordPress环境
设置 WordPress 目录的绝对路径 ABSPATH设置错误报告模式加载wp-config.php如果加载wp-config.php不存在,进行相关配置
定义 WP_USE_THEMES 常量,当该常量定义为 false 时,即不使用主题,站点会显示为空白;为 true 时则正常显示
wp-blog-header.php
设置 $wp_did_header 变量,确保 wp-blog-header.php 文件只执行一次加载当前目录下的wp-load.php调用wp()函数加载wp-include目录下的template-loder.php
wp()内容处理阶段
wp-config.php
0 条评论
下一页