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过滤器钩子”

Ubuntu18.04开启BBR网络拥塞控制协议

操作环境

OS info:

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

Google TCP BBR 协议说明

TCP BBR 拥塞控制协议是 Google 2016 年推出的一种网络拥塞控制算法,但这并不是 Google 的一款官方产品。相比于传统的设置拥塞窗口和慢启动等拥塞控制方式,BBR 拥塞控制算法可以在拥塞发生之后的恢复阶段通过主动探测的方式快速恢复对带宽资源的利用。在客户端到服务器之间的网络环境不佳时,开启 BBR 加速能够较明显地改善连接使用体验。据报道,Google 在 YouTube 上使用 BBR 协议后,YouTube 的全球的平均网络吞吐量提高了 4 %,在一些国家甚至超过了 14 %.

自 Linux 4.9 版本内核开始,Linux 内核已经内置了 BBR 协议,也就是说,在目前较新版本的 Linux 系统中都可以直接开启 BBR 协议,而不需要安装。

(Linux 4.9 版本内核正式发布于 2016 年 12 月 11 日)

继续阅读“Ubuntu18.04开启BBR网络拥塞控制协议”

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开发:实现过滤包含恶意代码的危险评论的插件”

刻录了一千万个人名的芯片已经装载到毅力号火星车上

Photographer: NASA JPL ATLO
Location: PHSF
NASA ID: KSC-20200316-PH-JPL01_0003
Date Created: 2020-03-16
Image From: https://images.nasa.gov/details-KSC-20200316-PH-JPL01_0003

You can click HERE to view high-resolution image.

继续阅读“刻录了一千万个人名的芯片已经装载到毅力号火星车上”

SpaceX的星舰和超级重型火箭参数概览

作为一款能够往返火星的航天器,SpaceX 的星舰可以用“庞然大物”来形容,那么,星舰到底有多庞大呢?让我们通过 SpaceX 星舰的参数来一探究竟!

Image Credit: SpaceX
Image From: https://www.spacex.com/mars
中文标注:荒原之梦
继续阅读“SpaceX的星舰和超级重型火箭参数概览”

约翰·霍普金斯大学:COVID-19新冠病毒全球感染人数已超54万

根据美国约翰·霍普金斯大学网站 (coronavirus.jhu.edu) 截至于北美东部时间 2020 年 03 月 27 日上午 06 时 14 分,即北京时间 2020 年 03 月 27 日下午 06 时 14 分发布的数据,COVID – 19 新型冠状病毒在全球造成的确诊感染人数已经上升到 542,417 人。此外,美国的确诊感染人数已经超过中国。

继续阅读“约翰·霍普金斯大学:COVID-19新冠病毒全球感染人数已超54万”

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使用样例”