什么是 WordPress 过滤器?
WordPress 过滤器是一个钩子,可以在数据返回到数据库并显示给用户之前修改数据。因此,你可以自定义插件、主题或网站的功能,而无需更改 WordPress 核心文件。 例如,向所有网站帖子添加脚注或更改其摘录长度。有四种常见的过滤器钩子函数——add_filter、 remove_filter、has_filter和doing_filter。
WordPress 过滤器的工作原理
过滤器拦截 WordPress 传递的数据。它们根据给定的功能对其进行修改并将其显示到用户的网络浏览器上。为了帮助您理解,请查看以下代码片段:
// Specify the filter and the callback function
add_filter( 'example_filter', 'example_callback' );
// Define the callback function
function example_callback( $example ) {
// alter $example by concatenating on it
$example . ‘ add a text at the end ’;
return $example;
}
以下是该示例的解释:
- 使用add_filter函数设置一个将修改数据的过滤器。在我们的例子中,过滤器名称是example_filter。
- 定义WordPress找到过滤器时将运行的回调函数,即example_callback。
- 指定回调函数将如何修改$example参数表示的数据。在片段中,我们将使用句号将其与末尾的句子连接起来。
- 使用return方法将修改后的数据显示到用户的 Web 浏览器。
要将过滤器挂钩应用到您的 WordPress 网站,请将代码写入当前活动主题的functions.php文件中。
建议将代码添加到子主题的文件中,以防止在主题更新后代码丢失。或者在主题根文件夹中创建一个单独的文件来存放过滤器挂钩,并在functions.php文件中调用它。这样可以更好地组织你的代码并确保其在主题更新时不会丢失。
include _once( get_template_directory(), '/yourfilename.php':'
如果你无法访问主题根文件夹,请安装插件以直接从 WordPress 管理仪表板添加自定义代码。用于此任务的插件可选择Code Snippets。
注意:修改functions.php文件可能会导致错误或网站无法访问。为了避免这种情况,请在继续之前创建备份。
WordPress add_filter 参数
WordPress add_filter函数有四个参数。以下是它们中的每一个:
- 钩名。你想要将回调函数挂钩到的 过滤器名称。
- 回调函数。应用过滤器时要运行的回调函数。
- 优先事项。一个可选参数,指定与过滤器关联的函数的执行顺序。默认值为10, 数字越小,执行越早。
- 接受的论点。传递给挂钩函数的参数数量。此参数是可选的,默认值为1。
函数和参数语法如下:
add_filter( hook_name, callback_function, priority=1,
accepted_arguments=1);
WordPress 中 add_filter 更改WordPress帖子摘录的长度的示例:
function custom_excerpt_length( $length ) {
return 20; // 更改此处的数字以调整摘录的长度
}
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );
在这个例子中,我们创建了一个名为custom_excerpt_length的自定义函数,该函数接受一个参数$length,表示摘录的长度。然后,我们将这个函数作为参数传递给add_filter函数,指定了过滤器的名称(excerpt_length)和我们自定义的函数名。最后的999参数表示优先级,这里我们将其设置为较高的值,以确保我们的过滤器最后被应用。
显示特定帖子类别的图像
WordPress 过滤器挂钩可让您自定义具有特定 ID 或类别的帖子。在下面的代码片段中,我们为属于高级类别的每个帖子添加了一个图标:
add_filter( ‘the_content’, ‘add_disclaimer’ );
function add_disclaimer( $content )
{
// concatenate the content to modify it
return $content .
“<br><center><strong>All writings and opinions are my own“;
}
在示例中,我们创建了the_content过滤器并将其与wpb_content_filter回调函数挂钩。该函数指定过滤器应用的条件。
在这种情况下,如果 帖子属于高级类别,过滤器功能将通过向其中添加图像来更改内容。
更改显示的产品数量
过滤器还允许你修改电子商务插件以自定义你的在线商店。例如,以下自定义代码可更改 WooCommerce 插件上显示的产品数量:
add_filter('storefront_products_per_page','alter_sf_products_per_page' );
function alter_sf_products_per_page()
{
// change the default value
return 3 ;
}
在代码片段中,我们创建了storefront_products_per_page自定义过滤器,并将其与alter_sf_products_per_page函数挂钩。当数据通过它时,过滤器将调用该函数将默认值从12更改为3并将其显示到用户的浏览器。
其他常用的 WordPress 过滤器
除了add_filter之外,开发人员还可以将以下几个其他函数与过滤器挂钩一起使用。
删除过滤器()
此函数删除挂钩到特定过滤器的函数。 Web 开发人员通常使用它来删除默认的 WordPress 功能,而无需完全删除代码。语法如下:
remove_filter( hook_name, callback_function, priority = 10 );
执行过滤器()
该函数检查当前是否正在执行另一个函数。它采用钩子名称作为参数并输出true或false返回值。代码如下:
if doing_filter( 'hook_name’ )
{
// execute a script if the filter is running
};
有_过滤器()
has_filter函数验证过滤器是否成功应用于挂钩。它采用过滤器名称作为第一个参数,回调函数作为可选的第二个参数。
要检查特定功能,必须包含第二个参数。否则,它将返回true来指示任何函数已挂接到过滤器。该函数的代码如下:
has_filter( ‘hook_name’, ‘callback_function’ );
总结:
过滤器是一个 WordPress 挂钩,用于在网站上显示数据之前修改数据。 Web 开发人员使用它来自定义插件或主题,以便为他们的网站添加额外的功能。
过滤器挂钩将拦截 WordPress 传递的数据,根据你的需求进行更改,并将其显示到访问者的浏览器上。要设置过滤器,在主题的functions.php文件中编写add_filter函数,并使用挂钩名称和回调函数作为参数。
过滤器挂钩的示例用例包括更改文章摘录长度和向网站帖子添加免责声明。除了add_filter之外,它的其他函数还包括remove_filter、doing_filter和has_filter。
- 最新
- 最热
只看作者