自 2004 年 WordPress 1.2 的光明世界出现以来,过滤器和操作一直是主题和模块开发的基石之一。
Hooks(这两组不同 PHP 函数的总称)允许您修改或扩展 WordPress 的功能,而无需以任何方式干扰内核文件。 下面我们将展示过滤器改变内容的值,并且动作可以同时向被调用的函数添加另一个。 多亏了这一点,我们有了一个非常强大的工具来创建一个独特的博客或网站,同时我们不必担心更新到最新版本的 WP 出现问题。
当您在将文本或其他类型的内容添加到数据库或将其发送到浏览器之前更改文本或其他类型的内容时,过滤器会启动 WordPress。 您的模块可以指定一个或多个 PHP 函数在给定时间更改给定类型的内容。
了解什么是钩子的基础的一个简单示例是现有函数及其修改的演示。
function get_excerpt($text, $length = 150) { $excerpt = substr($text,$length); return $excerpt; }
这个函数包含两个参数:一个字符串和我们想要缩短它的长度。 您想要帖子列表中的 200 个字符而不是默认的 150 个字符吗? 没问题,我们在使用函数时更改参数。 首先,我们为调整报告长度的函数应用一个过滤器。
function get_excerpt($text, $length = 150) { $length = apply_filters('excerpt_length', $length); $excerpt = substr($text,$length); return $excerpt; }
此过滤器的名称是 excerpt_lenght,并且尚未附加任何功能,因此列表保持在 150 个字符。 所以我们必须告诉系统我们要“挂钩”excerpt_length 过滤器并定义一个新值。 我们将使用以下条目进行更改:
function get_excerpt($text, $length = 150) { $length = apply_filters('excerpt_length'); $excerpt = substr($text,$length); return $excerpt; } function modify_excerpt_length() { return 200; } add_filter('excerpt_length', 'modify_excerpt_length');
完成,所有语句的规则是它们将包含 200 个字符。 在不干扰原始功能的情况下,我们对语句列表的长度应用了过滤器,更改将反映在每个显示的语句中。
该操作在命令执行期间的特定点或发生特定事件时触发 WordPress。 您的模块可以使用操作来指定将在这些点执行一个或多个 PHP 函数。
一个有用的操作示例是在活动主题的 header.php 文件中插入指向页面图标的链接。 名为theme_favicon的函数包含 HTML 代码,其中包含存储 favicon.ico 文件的地址,写为add_action (‘wp_head’, ‘theme_favicon’);我们通过在标签之间插入提到的代码来告诉系统我们想要将我们的函数附加到wp_head函数<头></ 有>.
function theme_favicon() { ?> <link rel="shortcut icon" href="<?php bloginfo('stylesheet_directory') ?>/images/favicon.ico"/> <?php } add_action('wp_head', 'theme_favicon');
好消息是 WordPress 在任何地方都使用功能并且编辑选项基本上是无限的,但是新手开发人员可能会被这个数字(目前超过 1500 个)推迟。 要找到这么多功能并不容易,但官方 WordPress 文档包括精心设计的过滤器和操作报告,Adam R. Brown 的钩子数据库是学习钩子的良好开端。
Was this article helpful for you? Support me by sharing, please. 👍