专注国内外云服务器
分享建站技术教程

WordPress开发函数apply_filters_ref_array()

立即购买

阿里云服务器 ¥102元/年 云数据库37.5元/年 限时

个人、企业均可购买 | 更多配置0.8折特惠

吾上云WORDPRESS教程最新“WordPress开发函数apply_filters_ref_array()”

WordPress开发函数apply_filters_ref_array(),调用已添加到筛选器钩子的回调函数,并指定数组中的参数。

用法:

apply_filters_ref_array( string $tag, array $args )

描述:

参见also

apply_filters():这个函数是相同的,但是传递给与$tag挂钩的函数的参数是使用数组提供的。

参数

$tag

(string) (必需) 过滤器钩子的名称。

$args

(array) (必需) 提供给与$tag挂钩的函数的参数。

返回

(mixed)所有钩子函数应用到过滤后的值。

更多信息

当你的参数已经在数组中,或者有很多参数要传递时,这个函数会很有用。只是要确保你的论点是在正确的顺序!

在PHP 5.4之前,回调函数传递一个指向数组的引用指针。你的回调函数可以使用这个指针来访问所有的数组元素。添加一个过滤器并声明一个挂钩上述过滤器示例的回调函数,如下所示:

add_filter(‘my_filter’, ‘my_callback’);

function my_callback( $args ) {

//access values with $args[0], $args[1] etc.

}

因为数组是通过引用传递的,所以对数组元素的任何更改都应用于函数范围之外的原始数组。

无论PHP版本如何,你都可以在添加过滤器时指定数组元素的数量,并在回调函数声明的单独参数中接收每个元素,如下所示:

add_action(‘my_filter’, ‘my_callback’, 10, 4 );

function my_callback( $arg1, $arg2, $arg3, $arg4 ) {

//access values with $args1, $args2 etc.

}

因为原始数组是通过引用传递的,所以对数组元素的任何更改都应用于函数范围之外的原始数组。

来源:

文件: wp-includes/plugin.php

function apply_filters_ref_array( $tag, $args ) {

global $wp_filter, $wp_current_filter;

// Do ‘all’ actions first.

if ( isset( $wp_filter[‘all’] ) ) {

$wp_current_filter[] = $tag;

$all_args = func_get_args(); // phpcs:ignore PHPCompatibility.FunctionUse.ArgumentFunctionsReportCurrentValue.NeedsInspection

_wp_call_all_hook( $all_args );

}

if ( ! isset( $wp_filter[ $tag ] ) ) {

if ( isset( $wp_filter[‘all’] ) ) {

array_pop( $wp_current_filter );

}

return $args[0];

}

if ( ! isset( $wp_filter[‘all’] ) ) {

$wp_current_filter[] = $tag;

}

$filtered = $wp_filter[ $tag ]->apply_filters( $args[0], $args );

array_pop( $wp_current_filter );

return $filtered;

}

更新日志:

用户贡献的笔记

(由Codex – 5年前贡献)

例子

调用添加的过滤器并传递参数数组:

$args = array( ‘arg_1’, true, ‘foo’, ‘arg_4’ );

apply_filters_ref_array( ‘my_filter’, $args );

这与:

apply_filters( ‘my_filter’, ‘arg_1’, true, ‘foo’, ‘arg_4’ );

(由Codex – 5年前贡献)

请注意

当你的参数已经在数组中,或者有很多参数要传递时,这个函数会很有用。只是要确保你的论点是在正确的顺序!

(由Codex – 5年前贡献)

从PHP 5.4开始,数组不再通过引用传递

在PHP 5.4之前,回调函数传递一个指向数组的引用指针。你的回调函数可以使用这个指针来访问所有的数组元素。添加一个过滤器并声明一个挂钩上述过滤器示例的回调函数,如下所示:

function wpdocs_my_callback( $args ) {

// Access values with $args[0], $args[1] etc.

}

add_filter( ‘my_filter’, ‘wpdocs_my_callback’ );

因为数组是通过引用传递的,所以对数组元素的任何更改都应用于函数范围之外的原始数组。

无论PHP版本如何,你都可以在添加过滤器时指定数组元素的数量,并在回调函数声明的单独参数中接收每个元素,如下所示:

function wpdocs_my_callback( $arg1, $arg2, $arg3, $arg4 ) {

// Access values with $args1, $args2 etc.

}

add_action( ‘my_filter’, ‘wpdocs_my_callback’, 10, 4 );

该方法将数组元素复制到参数变量中。对形参变量的任何更改都不会影响原始数组。

从PHP 5.4开始,数组不再通过引用传递,不管函数名是什么。你甚至不能使用引用符号’ & ‘,因为调用时间通过引用现在抛出一个错误。你可以做的是将引用指针作为数组元素传递。这样做需要添加到过滤器的所有回调函数都需要一个引用指针。这不是你在WordPress操作中看到的东西。此技术仅供参考之用。

apply_filters_ref_array( ‘my_filter’, array( &$args ) );

function wpdocs_my_callback( &$args ) {

//access values with $args[0], $args[1] etc.

}

add_action(‘my_filter’, ‘wpdocs_my_callback’);

因为原始数组是通过引用传递的,所以对数组元素的任何更改都应用于函数范围之外的原始数组。

文章来源于互联网WORDPRESS教程:WordPress开发函数apply_filters_ref_array(),
阿里云服务器89元起,点击购买
腾讯云服务器95元/年起 点击购买

相关推荐: WordPress有手机客户端吗?可以编辑文章和回复评论吗?

大多数WordPress站点都使用了响应式主题,那么该站点前后台都是响应式,可以在电脑、平板电脑、手机上访问和使用,比如通过手机浏览器登录WordPress后台就可以编辑文章和回复评论等操作了,但是总感觉没有那么顺手,那么WordPress有没有手机移动客户端…

赞(0)
未经允许不得转载:吾上云 » WordPress开发函数apply_filters_ref_array()
分享到: 更多 (0)
  • 阿里云
    基础型云服务器

    1核CPU

    2G内存

    40G硬盘

    1M带宽

    独立IP

    分布式存储

    适合企业官网、个人站长类网站

    ¥89/1年 原价¥903.40

  • 阿里云
    超值型云服务器

    2核CPU

    4G内存

    40G硬盘

    3M带宽

    独立IP

    分布式存储

    适合企业官网、行业门户类网站

    ¥899/3年 原价¥8281

  • 阿里云
    高性能云服务器

    2核CPU

    8G内存

    40G硬盘

    5M带宽

    独立IP

    分布式存储

    适合电商、数据库等企业级应用

    ¥1399/3年¥14765

  • 腾讯云
    基础型云服务器

    1核CPU

    2G内存

    50G硬盘

    1M带宽

    独立IP

    分布式存储

    适合企业官网、个人站长类网站

    ¥95/1年 原价¥834

  • 腾讯云
    超值型云服务器

    1核CPU

    2G内存

    50G硬盘

    1M带宽

    独立IP

    分布式存储

    适合企业官网、行业门户类网站

    ¥288/3年 原价¥2502

  • 腾讯云
    高性能云服务器

    4核CPU

    8G内存

    50G硬盘

    5M带宽

    独立IP

    分布式存储

    适合电商、数据库等企业级应用

    ¥2188/3年¥13986

  • 阿里云
    基础型云服务器

    1核CPU

    2G内存

    40G硬盘

    1M带宽

    独立IP

    分布式存储

    适合企业官网、个人站长类网站

    ¥89/1年 原价¥903.40

  • 阿里云
    超值型云服务器

    2核CPU

    4G内存

    40G硬盘

    3M带宽

    独立IP

    分布式存储

    适合企业官网、行业门户类网站

    ¥899/3年 原价¥8281

  • 阿里云
    高性能云服务器

    2核CPU

    8G内存

    40G硬盘

    5M带宽

    独立IP

    分布式存储

    适合电商、数据库等企业级应用

    ¥1399/3年¥14765

  • 腾讯云
    基础型云服务器

    1核CPU

    2G内存

    50G硬盘

    1M带宽

    独立IP

    分布式存储

    适合企业官网、个人站长类网站

    ¥95/1年 原价¥834

  • 腾讯云
    超值型云服务器

    1核CPU

    2G内存

    50G硬盘

    1M带宽

    独立IP

    分布式存储

    适合企业官网、行业门户类网站

    ¥288/3年 原价¥2502

  • 腾讯云
    高性能云服务器

    4核CPU

    8G内存

    50G硬盘

    5M带宽

    独立IP

    分布式存储

    适合电商、数据库等企业级应用

    ¥2188/3年¥13986

评论 抢沙发

评论前必须登录!

 

吾上云 专注服务器选购

购买云服务器联系我们