概述
写一些我对wp的认识!我是按照一次访问的顺序来了解wp的运行原理,从而去了解wp的结构
解析
执行顺序
--index.php
--wp-blog-header.php
--wp-load.php
--wp-config.php //配置数据文件,加载wp-setting.php
--wp-setting.php // 这个文件很重要
--/include/load.php wp的一些方法
--/include/default-constants.php 包含定义函数的方法
--/include/version.php 版本常数定义(wp,PHP,mysql,tinymce...)
--/include/compat.php
--/include/functions.php
--/include/class-wp.php
--/include/class-wp-error.php
--/include/plugin.php,/pomo/mo.php,wp-db.php
--/include/default-filters.php //挂载钩子 add_action,add_filter
--/include/l10n.php
--...包含了大部分include文件夹下的文件
//这个文件包含了一系列页面加载前的准备操作.数据库对象的建立,常量的定义,配置文件的加载,常用方法挂载到钩子,头部信息发送等,wp对象的建立,插件控制对象的建立等等.
--wp(); //这个方法很重要
//执行了wp->main();这里边做了wp对象的如下操作
$this->init();
$this->parse_request($query_args);
$this->send_headers();
$this->query_posts();
$this->handle_404();
$this->register_globals();
//一目了然他干了什么
--template-loader.php //这个文件也很重要
执行do_action( 'template_redirect' );
// 选择页面进行跳转,如果想要跳转到插件去运行,那么你的插件关键类中,需要有template_redirect这样的一个方法。并在关键类中初始化时挂载到钩子里边。
//插件json_api 就是在这里被调用。
几个重要的全局变量
- $wpdb,$blog_id,$wp_actions,$wp_filter ,$custom_image_header, $custom_background,$wp_query ,$userdata,插件对象(如$json_api)
备注
一个钩子里边有可能有多个方法的,一个方法可以放到多个钩子上
问题
插件对象是什么时候生成的?
感悟
个人觉得wordpress是个基于方法的框架,所有的页面输出,逻辑处理,数据得到,都是写在某个特定的方法里边,然后通过他的钩子逻辑去挂载,实现。
网友评论