WordPress开发:add_filter和apply_filters过滤器钩子

1 操作环境

操作系统信息:

master@ubuntu:~$ lsb_release -a
No LSB modules are available.
Distributor ID:    Ubuntu
Description:    Ubuntu 18.04.4 LTS
Release:    18.04
Codename:    bionic

WordPress 信息:

主程序版本:WordPress 5.3.2
主题及版本:Twenty Sixteen(版本:2.0, 由WordPress团队开发)

2 本文概要

本文主要介绍 WprdPress 平台中提供的两个过滤器钩子:

  • add_filter
  • apply_filters

简单地说,add_filter 是添加过滤器钩子的函数(过滤器添加钩子),而 apply_filters 是应用过滤器钩子的函数(过滤器应用钩子)。

为了辅助理解,本文中还会展示一些关于这两个过滤器钩子的使用样例。

继续阅读“WordPress开发:add_filter和apply_filters过滤器钩子”

WordPress开发:实现过滤包含恶意代码的危险评论的插件

操作环境

操作系统信息:

master@ubuntu:~$ lsb_release -a
No LSB modules are available.
Distributor ID:    Ubuntu
Description:    Ubuntu 18.04.4 LTS
Release:    18.04
Codename:    bionic

WordPress 信息:

主程序版本:WordPress 5.3.2
主题及版本:Twenty Sixteen(版本:2.0, 由WordPress团队开发)

需求分析

运行在公网中的 WordPress 站点极易遭受 SQL 注入攻击以及 XSS 跨站脚本攻击等。即便是一个不开放用户注册功能的个人博客,也存在攻击切入点,例如评论框。目前版本的 WordPress (WordPress 5.3.2) 本身并不会把可能包含恶意代码的评论删除,在 WordPress 没有被暴露出漏洞的时候,这么做可能并没有什么问题,但是一旦被发现存在漏洞,那么允许包含恶意代码的数据存入数据库就会变得很危险。因此,我的需求就是,一旦评论中被检测到存在可能的恶意代码,就要把该评论删除,同时,用一条表达警示信息的预置标准评论代替该评论,从而使得任何可能包含恶意代码的评论都不被写入数据库,最大程度地防范 SQL 注入攻击和 XSS 跨站脚本攻击等。

继续阅读“WordPress开发:实现过滤包含恶意代码的危险评论的插件”

WordPress开发:WordPress插件的时区设置及样例

操作环境

操作系统信息:

master@ubuntu:~$ lsb_release -a
No LSB modules are available.
Distributor ID:    Ubuntu
Description:    Ubuntu 16.04.6 LTS
Release:    16.04
Codename:    xenial

WordPress 信息:

主程序版本:WordPress 5.3.2
主题及版本:Twenty Sixteen(版本:2.0, 由WordPress团队开发)

继续阅读“WordPress开发:WordPress插件的时区设置及样例”

WordPress开发:WordPress动作钩子add_action参数解析

操作环境

操作系统信息:

master@ubuntu:~$ lsb_release -a
No LSB modules are available.
Distributor ID:    Ubuntu
Description:    Ubuntu 16.04.6 LTS
Release:    16.04
Codename:    xenial

WordPress 信息:

主程序版本:WordPress 5.3.2
主题及版本:Twenty Sixteen(版本:2.0, 由WordPress团队开发)

add_action 函数使用形式

<?php add_action( string $tag, callable $function_to_add, int $priority = 10, int $accepted_args = 1 ); ?>
继续阅读“WordPress开发:WordPress动作钩子add_action参数解析”

WordPress开发:一个动作钩子可以挂载多个动作,以wp_footer钩子为例

操作背景

操作系统信息:

master@ubuntu:~$ lsb_release -a
No LSB modules are available.
Distributor ID:    Ubuntu
Description:    Ubuntu 16.04.6 LTS
Release:    16.04
Codename:    xenial

WordPress 信息:

主程序版本:WordPress 5.3.2
主题及版本:Twenty Sixteen(版本:2.0, 由WordPress团队开发)

准备工作

在「荒原之梦」之前文章《WordPress开发:WordPress动作钩子之add_action和do_action使用样例》中,提到了 add_actiondo_action 两个动作钩子,以及 WordPress 页脚钩子 wp_footer, 本文将在《WordPress开发:WordPress动作钩子之add_action和do_action使用样例》这篇文章的基础上,通过补充一些代码的方式,说明在一个动作钩子上挂载多个动作的实现方式。

继续阅读“WordPress开发:一个动作钩子可以挂载多个动作,以wp_footer钩子为例”

WordPress开发:WordPress动作钩子之add_action和do_action使用样例

操作环境

操作系统信息:

master@ubuntu:~$ lsb_release -a
No LSB modules are available.
Distributor ID:    Ubuntu
Description:    Ubuntu 16.04.6 LTS
Release:    16.04
Codename:    xenial

WordPress 信息:

主程序版本:WordPress 5.3.2
主题及版本:Twenty Sixteen(版本:2.0, 由WordPress团队开发)

需求分析

在本文的样例中,我们需要实现一个在 WordPress 页脚添加联系信息的插件。具体要求如下:

  • 插件启动时将硬编码进插件代码中的联系信息(一个邮箱地址)写入数据库;
  • 之后,从数据库中取出该联系信息,显示到 WordPress 页脚的位置;
  • 插件卸载时能够自动清除之前写入到数据库中的数据。
继续阅读“WordPress开发:WordPress动作钩子之add_action和do_action使用样例”

WordPress插件开发:实现插件的注册,注销和卸载

操作环境

操作系统信息:

master@ubuntu:~$ lsb_release -a
No LSB modules are available.
Distributor ID:    Ubuntu
Description:    Ubuntu 16.04.6 LTS
Release:    16.04
Codename:    xenial

WordPress 信息:

主程序版本:WordPress 5.3.2
主题及版本:Twenty Sixteen(版本:2.0, 由WordPress团队开发)

继续阅读“WordPress插件开发:实现插件的注册,注销和卸载”

通过插入断点显示WordPress当前已激活的插件

操作环境

操作系统信息:

master@ubuntu:~$ lsb_release -a
No LSB modules are available.
Distributor ID:    Ubuntu
Description:    Ubuntu 16.04.6 LTS
Release:    16.04
Codename:    xenial

WordPress 信息:
主程序版本:WordPress 5.3.2
主题及版本:Twenty Sixteen(版本:2.0, 由 WordPress 团队开发)

下面的内容涉及 WordPress 文件调用顺序的问题,关于这部分内容可以参考「荒原之梦」的这篇文章:

WordPress文件调用加载顺序(含矢量示意图)

继续阅读“通过插入断点显示WordPress当前已激活的插件”

WordPress文件调用加载顺序(含矢量示意图)

操作环境

操作系统信息:

master@ubuntu:~$ lsb_release -a
No LSB modules are available.
Distributor ID:    Ubuntu
Description:    Ubuntu 16.04.6 LTS
Release:    16.04
Codename:    xenial

WordPress 信息:

主程序版本:WordPress 5.3.2
主题及版本:Twenty Sixteen(版本:2.0, 由 WordPress 团队开发)

继续阅读“WordPress文件调用加载顺序(含矢量示意图)”

WordPress开发必备:WordPress5.3.*函数大全[6/6]

说明

【WordPress5.3.*函数大全系列】包含 WordPress 在其开发者资源网公布的 WordPress 5.3. 的全部函数,一共 1470 个。

由于将这些内容全部放在一篇文章中会超出 WordPress 的限制,也会在加载过程中对【荒原之梦】的数据库造成产生较大的负荷,因此,我将这 1470 个函数分列到了 6 篇文章中,如下:

WordPress开发必备:WordPress5.3.*函数大全[1/6]
WordPress开发必备:WordPress5.3.*函数大全[2/6]
WordPress开发必备:WordPress5.3.*函数大全[3/6]
WordPress开发必备:WordPress5.3.*函数大全[4/6]
WordPress开发必备:WordPress5.3.*函数大全[5/6]
WordPress开发必备:WordPress5.3.*函数大全[6/6]

您也可以在我的 GitHub 上找到【WordPress开发必备:WordPress5.3.*函数大全】等 WordPress 开发资料:

https://github.com/zhaokaifengcom/wordpress-develop

本文中的函数对应于 WordPress 5.3.* 版主程序,此前及此后的版本中一些常用函数的变化通常不会太大,也可以参考本系列文章列出的函数。

继续阅读“WordPress开发必备:WordPress5.3.*函数大全[6/6]”

WordPress开发必备:WordPress5.3.*函数大全[5/6]

说明

【WordPress5.3.*函数大全系列】包含 WordPress 在其开发者资源网公布的 WordPress 5.3. 的全部函数,一共 1470 个。

由于将这些内容全部放在一篇文章中会超出 WordPress 的限制,也会在加载过程中对【荒原之梦】的数据库造成产生较大的负荷,因此,我将这 1470 个函数分列到了 6 篇文章中,如下:

WordPress开发必备:WordPress5.3.*函数大全[1/6]
WordPress开发必备:WordPress5.3.*函数大全[2/6]
WordPress开发必备:WordPress5.3.*函数大全[3/6]
WordPress开发必备:WordPress5.3.*函数大全[4/6]
WordPress开发必备:WordPress5.3.*函数大全[5/6]
WordPress开发必备:WordPress5.3.*函数大全[6/6]

您也可以在我的 GitHub 上找到【WordPress开发必备:WordPress5.3.*函数大全】等 WordPress 开发资料:

https://github.com/zhaokaifengcom/wordpress-develop

本文中的函数对应于 WordPress 5.3.* 版主程序,此前及此后的版本中一些常用函数的变化通常不会太大,也可以参考本系列文章列出的函数。

继续阅读“WordPress开发必备:WordPress5.3.*函数大全[5/6]”

WordPress开发必备:WordPress5.3.*函数大全[4/6]

说明

【WordPress5.3.*函数大全系列】包含 WordPress 在其开发者资源网公布的 WordPress 5.3. 的全部函数,一共 1470 个。

由于将这些内容全部放在一篇文章中会超出 WordPress 的限制,也会在加载过程中对【荒原之梦】的数据库造成产生较大的负荷,因此,我将这 1470 个函数分列到了 6 篇文章中,如下:

WordPress开发必备:WordPress5.3.*函数大全[1/6]
WordPress开发必备:WordPress5.3.*函数大全[2/6]
WordPress开发必备:WordPress5.3.*函数大全[3/6]
WordPress开发必备:WordPress5.3.*函数大全[4/6]
WordPress开发必备:WordPress5.3.*函数大全[5/6]
WordPress开发必备:WordPress5.3.*函数大全[6/6]

您也可以在我的 GitHub 上找到【WordPress开发必备:WordPress5.3.*函数大全】等 WordPress 开发资料:

https://github.com/zhaokaifengcom/wordpress-develop

本文中的函数对应于 WordPress 5.3.* 版主程序,此前及此后的版本中一些常用函数的变化通常不会太大,也可以参考本系列文章列出的函数。

继续阅读“WordPress开发必备:WordPress5.3.*函数大全[4/6]”

WordPress开发必备:WordPress5.3.*函数大全[3/6]

说明

【WordPress5.3.*函数大全系列】包含 WordPress 在其开发者资源网公布的 WordPress 5.3. 的全部函数,一共 1470 个。

由于将这些内容全部放在一篇文章中会超出 WordPress 的限制,也会在加载过程中对【荒原之梦】的数据库造成产生较大的负荷,因此,我将这 1470 个函数分列到了 6 篇文章中,如下:

WordPress开发必备:WordPress5.3.*函数大全[1/6]
WordPress开发必备:WordPress5.3.*函数大全[2/6]
WordPress开发必备:WordPress5.3.*函数大全[3/6]
WordPress开发必备:WordPress5.3.*函数大全[4/6]
WordPress开发必备:WordPress5.3.*函数大全[5/6]
WordPress开发必备:WordPress5.3.*函数大全[6/6]

您也可以在我的 GitHub 上找到【WordPress开发必备:WordPress5.3.*函数大全】等 WordPress 开发资料:

https://github.com/zhaokaifengcom/wordpress-develop

本文中的函数对应于 WordPress 5.3.* 版主程序,此前及此后的版本中一些常用函数的变化通常不会太大,也可以参考本系列文章列出的函数。

继续阅读“WordPress开发必备:WordPress5.3.*函数大全[3/6]”

WordPress开发必备:WordPress5.3.*函数大全[2/6]

说明

【WordPress5.3.*函数大全系列】包含 WordPress 在其开发者资源网公布的 WordPress 5.3. 的全部函数,一共 1470 个。

由于将这些内容全部放在一篇文章中会超出 WordPress 的限制,也会在加载过程中对【荒原之梦】的数据库造成产生较大的负荷,因此,我将这 1470 个函数分列到了 6 篇文章中,如下:

WordPress开发必备:WordPress5.3.*函数大全[1/6]
WordPress开发必备:WordPress5.3.*函数大全[2/6]
WordPress开发必备:WordPress5.3.*函数大全[3/6]
WordPress开发必备:WordPress5.3.*函数大全[4/6]
WordPress开发必备:WordPress5.3.*函数大全[5/6]
WordPress开发必备:WordPress5.3.*函数大全[6/6]

您也可以在我的 GitHub 上找到【WordPress开发必备:WordPress5.3.*函数大全】等 WordPress 开发资料:

https://github.com/zhaokaifengcom/wordpress-develop

本文中的函数对应于 WordPress 5.3.* 版主程序,此前及此后的版本中一些常用函数的变化通常不会太大,也可以参考本系列文章列出的函数。

继续阅读“WordPress开发必备:WordPress5.3.*函数大全[2/6]”

WordPress开发必备:WordPress5.3.*函数大全[1/6]

说明

【WordPress5.3.*函数大全系列】包含 WordPress 在其开发者资源网公布的 WordPress 5.3.* 的全部函数,一共 1470 个。

由于将这些内容全部放在一篇文章中会超出 WordPress 的限制,也会在加载过程中对【荒原之梦】的数据库造成产生较大的负荷,因此,我将这 1470 个函数分列到了 6 篇文章中,如下:

WordPress开发必备:WordPress5.3.*函数大全[1/6]
WordPress开发必备:WordPress5.3.*函数大全[2/6]
WordPress开发必备:WordPress5.3.*函数大全[3/6]
WordPress开发必备:WordPress5.3.*函数大全[4/6]
WordPress开发必备:WordPress5.3.*函数大全[5/6]
WordPress开发必备:WordPress5.3.*函数大全[6/6]

您也可以在我的 GitHub 上找到【WordPress开发必备:WordPress5.3.*函数大全】等 WordPress 开发资料:

https://github.com/zhaokaifengcom/wordpress-develop

本文中的函数对应于 WordPress 5.3.* 版主程序,此前及此后的版本中一些常用函数的变化通常不会太大,也可以参考本系列文章列出的函数。

继续阅读“WordPress开发必备:WordPress5.3.*函数大全[1/6]”