zoukankan      html  css  js  c++  java
  • 【转】WordPress源码解读(2)

    地图:index.php->……->wp-config.php->wp-setting.php

     

    wp-settings.php:
    描述:用于设置公共变量、加载 WP 的程序和类库(存储 WP 函数、类和核心内容所在文件夹的位置)。用户无需修改此文件,但是可以通过修改 wp-config.php 文件来进行配置。
    1)定义 WPINC 常量,并引入初始化所需文件 WPINC/load.php,WPINC/default-constants.php,WPINC/version.php。
    2)调用 wp_initial_constants() 函数,初始化常量 WP_MEMORY_LIMIT, WP_DEBUG, WP_CONTENT_DIR 和 WP_CACHE。3)关闭运行期的魔术引用,魔术引用稍后将在 wp-settings.php 中通过 wpdb 添加。
    4)设置 PHP5 的默认时区。
    5)调用 wp_unregister_GLOBALS() 函数关闭 register_globals。
    6)unset 全局变量 $wp_filter, $cache_lastcommentmodified, $cache_lastpostdate,以确保他们不会存在。
    7)规范 $_SERVER 变量设置。
    8)检查所需的 PHP 版本和 MySQL 扩展或数据库 drop-in。
    9)检查是否收到由于缺少 favicon.ico 的而产生请求。
    10)检查是否处于维护模式。
    11)开启加载计时器。
    12)检查是否处于 WP_DEBUG 模式。
    13)根据 WP_CACHE 和 WP_DEBUG 常量判断是否载入以及以何种方式载入 WP_CONTENT_DIR/advanced-cache.php 文件。
    14)调用 wp_set_lang_dir() 函数设置常量 WP_LANG_DIR。
    15)加载WP文件 WPINC/compat.php,WPINC/functions.php,WPINC/classes.php。
    16)调用 require_wp_db() 函数,引入 wpdb 类,或者数据库 drop-in db.php (如果存在的话)。
    17)调用 wp_set_wpdb_vars() 函数,设置数据库表前缀和数据库表列的格式说明符
    18)调用 wp_start_object_cache() 函数,开启WP对象缓存,或者扩展对象缓存(如果相应 drop-in 存在的话)。
    19)加载WP文件 WPINC/plugin.php,WPINC/default-filters.php,WPINC/pomo/mo.php。
    20)如果开启了多站点,则加载文件 WPINC/ms-blogs.php,WPINC/ms-settings.php;否则设置常量 MULTISITE 为 false。
    ————如果只需要基本功能(即 SHORTINIT 常量为真),则 wp-setting.php 文件执行到此即返回!————
    21)加载 l18n 库 WPINC/l10n.php。
    22)调用 wp_not_installed() 函数,如果还没有安装 WP,则启动安装程序。
    23)加载 WP 的*大头(most of WP)*:
    WPINC/formatting.php,
    WPINC/capabilities.php,
    WPINC/query.php,
    WPINC/theme.php,
    WPINC/user.php,
    WPINC/meta.php,
    WPINC/general-template.php,
    WPINC/link-template.php,
    WPINC/author-template.php,
    WPINC/post.php,
    WPINC/post-template.php,
    WPINC/category.php,
    WPINC/category-template.php,
    WPINC/comment.php,
    WPINC/comment-template.php,
    WPINC/rewrite.php,
    WPINC/feed.php,
    WPINC/bookmark.php,
    WPINC/bookmark-template.php,
    WPINC/kses.php,
    WPINC/cron.php,
    WPIN/deprecated.php,
    WPINC/script-loader.php,
    WPINC/taxonomy.php,
    WPINC/update.php,
    WPINC/canonical.php,
    WPINC/shortcodes.php,
    WPINC/media.php,
    WPINC/http.php,
    WPINC/class-http.php,
    WPINC/widgets.php,
    WPINC/nav-menu.php,
    WPINC/nav-menu-template.php
    24)加载多站点特定文件,WPINC/ms-functions.php,WPINC/ms-default-filters.php,WPINC/ms-deprecated.php。
    25)调用 wp_plugin_directory_constants() 函数,定义依赖于API获取默认值的常量,定义必须使用的插件文件夹常量,后者可能会在 sunrise.php drop-in 中被覆盖。
    26)利用函数 wp_get_mu_plugins() 加载必须使用的插件,并触发挂载点 do_action( ‘muplugins_loaded’ );
    27)调用函数 ms_cookie_constants() 为多站点设置 cookie 常量。
    28)调用函数 wp_cookie_constants() 在多站点加载后定义常量,cookie 相关的常量可能会在 ms_network_cookies() 中被覆盖。
    29)调用函数 wp_ssl_constants() 定义和执行 SSL 常量。
    30)加载文件 WPINC/vars.php 创建公共全局变量。
    31)调用函数 create_initial_taxonomies() 和 create_initial_post_types() 使分类和文章对插件和主题可见。插件作者需要注意:这些在初始化 hook 时会被再次注册。
    32)利用函数 wp_get_active_and_valid_plugins() 加载已激活的插件。
    33)加载 pluggable 的函数,WPINC/pluggable.php,WPINC/pluggable-deprecated.php。
    34)调用函数 wp_set_internal_encoding() 设置内部编码。
    35)如果 WP_CACHE 开启并且 wp_cache_postload() 函数存在,则调用该函数。
    36)触发挂载点 do_action( ‘plugins_loaded’ )。
    37)调用函数 wp_functionality_constants() 定义那些尚未被定义但会影响功能的常量。
    38)调用函数 wp_magic_quotes() 添加魔术引用并装配 $_REQUEST ( $_GET + $_POST )。
    39)触发挂载点 do_action( ‘sanitize_comment_cookies’ )(无害的评论 cookie)。
    40)创建全局的WP查询对象 $wp_the_query =& new WP_Query(),并保存 $wp_the_query 的引用到 $wp_query,使用 $wp_query 进行查询。
    41)创建 WP 的重写对象 $wp_rewrite =& new WP_Rewrite(),以创建漂亮的 URLs。
    42)创建WP对象 $wp =& new WP()。
    43)创建 WP Widget 工厂对象 $wp_widget_factory =& new WP_Widget_Factory()。
    44)触发挂载点 do_action( ‘setup_theme’ )。
    45)调用函数 wp_templating_constants() 设置模板相关常量。
    46)调用函数 load_default_textdomain() 加载默认的文本本地化域。
    47)找到博客区域设置 $locale = get_locale()。
    48)加载完文本域后,载入本地化数据 WPINC/locale.php。
    49)创建本地化对象 $wp_locale =& new WP_Locale() 用以加载本地化域数据和各种字符串。
    50)加载激活的主题的函数库  TEMPLATEPATH/functions.php。
    51)触发挂载点 do_action( ‘after_setup_theme’ )。
    52)调用函数 require_if_theme_supports() 加载主题支持的所有函数。
    53)注册关闭函数 register_shutdown_function( ‘shutdown_action_hook’ )。
    54)建立当前用户 $wp->init()。
    55)触发挂载点 do_action( ‘init’ ),在这个阶段WP 的大部分已被加载,用户也已认证。WP 会继续加载 init 钩子上的挂载者,如widgets和各种插件实例。如果你想在WP加载后插入一个action,请使用下面的 wp_loaded 钩子。
    56)如果是多站点,则检查站点的状态。
    57)触发挂载点 do_action(‘wp_loaded’),当WP、所有插件以及主题都被完全加载和实例化后,该钩子将被解除。Ajax请求应该使用  wp-admin/admin-ajax.php,admin-ajax.php 能够处理未登录用户的请求。

  • 相关阅读:
    PCIe体系结构概述
    PCI Express 系统体系结构标准教材
    PCI Express体系结构导读(1)
    windows设备驱动程序WDF开发(3)
    windows设备驱动程序WDF开发(2)
    Linux驱动开发概述
    基于WDF的PCI/PCIe接口卡Windows驱动程序(5)-如何为硬件移植驱动程序
    基于WDF的PCI/PCIe接口卡Windows驱动程序(4)- 驱动程序代码(源文件)
    基于WDF的PCI/PCIe接口卡Windows驱动程序(3)- 驱动程序代码(头文件)
    基于WDF的PCI/PCIe接口卡Windows驱动程序(2)-开发者需要了解的WDF中的一些重要的概念
  • 原文地址:https://www.cnblogs.com/temptation/p/1861465.html
Copyright © 2011-2022 走看看