Source ref:
do_action(\'admin_enqueue_scripts\', $hook_suffix);
do_action("admin_print_styles-$hook_suffix");
撇开基础作用的明显差异不谈(
admin_enqueue_scripts
vs公司
admin_print_scripts
), 这两者在句法上有什么区别?
我知道第二个add_action()
电话是这样的:
function wpse99999_enqueue_admin_scripts( \'appearance_page_pagename\' ) {
// wp_enqueue_script() call here
}
add_action( \'admin_print_styles-appearance_page_pagename\', wpse99999_enqueue_admin_scripts );
但是第一个看起来怎么样?现在
$hook_suffix
在这里通过?也许它是作为参数传递给回调的?
function wpse99999_enqueue_admin_scripts( \'appearance_page_pagename\' ) {
// wp_enqueue_script() call here
}
add_action( \'admin_enqueue_scripts\', \'wpse99999_enqueue_admin_scripts\' );
还是回调返回的?
function wpse99999_enqueue_admin_scripts() {
// wp_enqueue_script() call here
return \'appearance_page_pagename\';
}
add_action( \'admin_enqueue_scripts\', \'wpse99999_enqueue_admin_scripts\' );
还是完全是其他原因?
最合适的回答,由SO网友:fuxia 整理而成
对于…
do_action(\'admin_enqueue_scripts\', $hook_suffix);
…回调获取挂钩后缀作为第一个参数。因为这是一个动作,所以你不必返回任何东西。您可以在相当灵活的回调函数中使用它:
add_action(\'admin_enqueue_scripts\', \'wpse_49993_admin_script_callback\' );
function wpse_49993_admin_script_callback( $hook_suffix )
{
switch ( $hook_suffix )
{
case \'index.php\': // dashboard
// do one thing
break;
case \'options-general.php\': // settings
// do another thing
break;
}
}
另外:您可以在不同的站点上重复使用一个功能
减:将在每个管理页面上调用回调
do_action("admin_print_styles-$hook_suffix");
这将仅在一页上调用。
附加:速度稍快,碰撞风险较小负:你需要更多add_action()
调用一个或多个回调函数来执行类似的操作