假设我有以下挂钩函数:
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 );
最合适的回答,由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\' );
从代码质量的角度来看,这既不差也不好,避免传递不相关的参数只会节省键入一些字符的时间。