挂钩函数中接受的参数值

时间:2014-11-07 作者:SLH

假设我有以下挂钩函数:

function my_function() {
  $post_type = isset( $_GET[\'post_type\'] ) ? $_GET[\'post_type\'] : \'\';
  if( !isset( $_REQUEST[\'mode\'] ) )
    $_REQUEST[\'mode\'] = ( $post_type == \'my_post_type\' ) ? \'excerpt\' : \'list\';
}

add_action( \'load-edit.php\', \'my_function\', 10, 1 );

第四个参数是(来自WP Codex):

(int)(可选)挂钩函数接受的参数数。在WordPress 1.5.1+中,挂钩函数可以接受在运行匹配的do\\u action()或apply\\u filters()调用时设置的额外参数。例如,操作comment\\u id\\u not\\u found将传递任何钩住请求注释id的函数。

Default: 1
默认值为1,但我不向挂钩函数传递任何参数。

我应该添加这样的操作吗?

add_action( \'load-edit.php\', \'my_function\', 10, 0 );

1 个回复
最合适的回答,由SO网友:gmazzap 整理而成

WordPress将接受的参数值用作$length 的参数array_slice 执行操作时。

这意味着,如果你通过0 不会向回调传递任何参数。

然而,只有在传递或不传递参数时函数的行为不同时,才应该注意这一点。

类似于OP中的函数,定义时没有任何参数,也没有类似的函数func_get_args()func_get_arg() 是用在它里面的,所以它的意思是you can pass any number of arguments to that function, but it will not change its behaviour.

因此,您可以忽略add_action 像这样:

add_action( \'load-edit.php\', \'my_function\', 10 );
还要考虑10是默认优先级,所以前一行的效果与

add_action( \'load-edit.php\', \'my_function\' );
从代码质量的角度来看,这既不差也不好,避免传递不相关的参数只会节省键入一些字符的时间。

结束

相关推荐

每页完全不同的Functions.php?

是否可以通过条件加载完全不同的函数?i、 函数中的e。php您有一个条件加载在旧函数的include中,然后有另一个条件加载在新函数中?这样做的原因是一个网站正在呈现新的面貌,但只是一页一页,旧的样式和功能很混乱,需要更换,但我不能只是删除它们,因为网站的其余部分将失败。