Tag: WordPress
-
WordPress 主题机制的运行原理
基本思想 PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。 PHP 代码的可以完成功能:显示出 html 的字符串标签的代码。WordPress 的首页 index.php 的 get_header ()、get_sidebar ()、get_footer () 等函数返回的结果用 echo 输出是带有 html 标签的代码段。 主题包各文件说明 从源码看主题的调用过程 当浏览器向 apache 发送请求要得到博客主页的 HTML 代码时,./index.php 被调用。./index.php 中的 require (‘./wp-blog-header.php’); 调用./wp-blog-header.php。而./wp-blog-header.php 做了一些链接数据库包含头文件等处理,其中有两件事情与主题调用有关:1、有 require_once (dirname (__FILE__) ./wp-includes/functions.php’);而./wp-includes/functions.php 中包含进了./wp-includes/theme.php,这里定义了 get_home_template ()。 其中 apply_filters () 的作用是:将 $template hook 到 tag=’home_template’的 filters 上并返回 $template,也就是主题包的路径。 2、有 require_once (ABSPATH . WPINC .…
-
WordPress 数据表 wp-options 数据字段存 JSON 数据
wp_options 表是 WordPress 中最重要的表,一切程序设置、主题设置和绝大多数插件的设置大都保存在此表。 WordPress 里面数据表 wp-options 数据字段存 JSON 数据 :
-
WordPress 中自带的处理 AJAX 请求的 HOOK
在 WordPress 系统的后台,通过 Chrome 浏览器查看 WordPress 的 AJAX 请求。经过几次的点击,可以 WP 起到 AJAX 请求的文件主要就是 wp-admin/admin-ajax.php 文件。 admin-ajax.php 详细的代码如下: 这上面显示出 WordPress 自带的 AJAX 函数 hook: wp_ajax_和 wp_ajax_nopriv_
-
WordPress 内部运行机制初探究
WordPress 的代码非常的简单而且优雅,现在我的水平已经到了能够静下心来看 WP 源代码的水平了。首先,wp-admin/index.php 是是相当于后台程序的初步单入口,我在 index.php 文件的最后加入三行代码, 输出 WP 中的全局数组。WordPress 在 PHP 还没有面向对象的时候就已经存在了,内部的钩子都是基于 PHP 中的全局数组这样的简单的思想,弄清楚全局数组 $GLOBALS 基本就明白了 WordPress 的内部结构了。 WordPress 中重要的四个插件函数之一的 do_action () 函数: 打印出的全局数组的结果如下:(只是一部分,实际上更加长) WordPress 里面的全局数组,实在是太长了,有上万行的全局数组。 WP:不建议过度钻研,这个 blog 系统用起来还不错,还可以做企业站点,只是源码采用的设计模式比较特别,大量使用全局变量,不能算是一个进阶的途径,如果想研究奇淫巧技,这倒是可以看看的; WordPress 真是比较简单啊!
-
WordPress 运行环境配置和维护
WordPress 本身是 PHP 的程序,WordPress 运行环境配置和维护也是 PHP 程序的安装与配置。环境配置有 3 种可以选择。 LNMP 无面板环境 为 centOS 等 Linux 系统,配置 Nginx + MySQL + PHP 的环境,WordPress 大学目前就是使用这个环境。完美运行 WordPress,支持伪静态,支持发送邮件,可通过 FTP 管理网站文件,通过 phpmyadmin 管理数据库等。该环境没有可视化管理面板,创建站点、数据库和 FTP 等需要在 ssh 下使用命令操作,优点是占用内存资源非常小,安全性高,稳定高效。 可选组件及版本: 更多信息请看:http://lnmp.org/ WDCP 3 可视化面板 WDCP 是 WDlinux Control Panel 的简称,是一套通过 WEB 界面就可以控制和管理 Linux 云主机服务器以及虚拟主机的管理系统。最近更新的 WDCP 3,已经对组件进行了全面更新,安全性也得到了提升。这个面板操作非常简单,通过这个面板你几乎可以实现各种操纵,包括但不限于创建和管理网站、数据库、FTP 等等。当然,可视化面板相对而言会占用多点内存,而且可能会存在某些隐藏的安全问题(当然,官方的更新维护还是可以的,所以不必太担心)。支持伪静态,支持发送邮件。 可选组件及版本: 更多信息请看:http://www.wdlinux.cn/bbs/forum-23-1.html 宝塔 可视化面板 宝塔软件既有…
-
一整套 WordPress 模板制作的教程
WordPress 基本模板文件 一套完整的 WordPress 模板应至少具有如下文件:style.css: CSS (样式表) 文件index.PHP : 主页模板archive.php : Archive/Category 模板404.php : Not Found 错误页模板comments.php : 留言 / 回复模板footer.php : Footer 模板header.php : Header 模板sidebar.php : 侧栏模板page.php : 内容页 (Page) 模板single.php : 内容页 (Post) 模板searchform.php : 搜索表单模板search.php : 搜索结果模板当然,具体到特定的某款模板,可能不止这些文件,但一般而言,这些文件是每套模板所必备的。 基本条件判断 Tag is_home () : 是否为主页is_single () : 是否为内容页 (Post)is_page () : 是否为内容页 (Page)is_category ()…
-
WordPress 源码解读 – 文件的加载顺序浅析
地图:index.PHP->wp-blog-header.php->wp-load.php->wp-config.php index.php: 描述:前端入口,基本没有内容。 1)定义 WP_USE_THEMES 常量,当该常量定义为 false 时,站点会显示为空白;为 true 时则正常显示。 2)加载 wp-blog-header.php 文件。 wp-blog-header.php: 描述:用于加载 WP 环境和模板。 1)设置 $wp_did_header 变量,相当于一个 flag,确保 wp-blog-header.php 文件只在第一次被加载时执行。 2)加载 wp-load.php 文件。 3)调用 wp () 函数。 4)加载 wp-includes/template-loader.php 文件 wp-load.php: 描述:启动引导 (Bootstrap) 文件,用于设置 ABSPATH 常量和加载 wp-config.php 文件。wp-config.php 将会加载 wp-settings.php 文件,它将用于建立 WP 的环境。 如果找不到 wp-config.php 文件,则会提示错误信息,要求用户设置 wp-config.php 文件。 wp-load.php 还会自动搜索 WP 的上级文件夹寻找…
-
WordPress 前端代码详细说明
本文的侧重点是:展示和解读 WordPress 从启动 (即从 index.PHP 入口进入) 到在网页上展示模板和内容的过程。这个过程可以分为 3 个阶段,一是初始化阶段,即初始化常量、环境、加载核心文件等等;二是内容处理阶段,即根据用户的请求调用相关函数获取和处理数据,为前端展示准备数据;三是主题应用阶段,在这个阶段,需要展示的数据已经准备完毕,需要根据用户的请求加载相应的主题模板,即对主题进行路由。经过这三各阶段,用户请求的页面就可以完全的展现出来了~_~ 注:为了是思路更加的清晰易懂,暂时不考虑后台管理相关的文件,以及多博客 / 站点相关的文件! 初始化阶段 从 WordPress 入口 (大部分情况下是 index.php) 进入,到这部分结束为止,我们看到 WordPress 主要做了如下几件事情:定义常量和全局变量;设置环境参数;进行初始化判断 (例如 WordPress 是否已经安装);加载 WordPress 核心文件;处理 action 和 filter 相关事务;创建功能对象 (如 $wp,$wp_rewrite 等);因而这一阶段可以看作是 WordPress 的初始化阶段。WordPress 的初始化阶段是一个相当繁琐的过程,详细见如下列表: 内容处理阶段 在这一阶段,调用 wp () 函数对数据库内容进行查询,并将查询的内容赋值给一些全局变量,方便在模板中使用模板标签获取相应的数据并展示在前端。 主题应用阶段 WordPress 主题的路由和加载主要在 WPINC/template-loader.php 文件中进行,该文件相当于是一个模板加载的路由器,根据 url 加载相应的模板。 模板路由完成以后,被调用的模板会被加载,模板中的模板标签也会访问在内容准备阶段所设置的全局变量,获取所需的数据,并且将这些数据输出到模板中,最终完成样式 + 内容在前端的显示!