如何在使用Add_Filter时选择新项输出在下拉列表中的位置

时间:2019-02-18 作者:Ed A

您好,我正在使用此处建议的代码片段向下拉菜单中添加新术语:https://wpjobmanager.com/document/applications-customising-application-statuses/

即:

add_filter( \'job_application_statuses\', \'add_new_job_application_status\' );

function add_new_job_application_status( $statuses ) {
    $statuses[\'example\'] = _x( \'Example\', \'job_application\', \'wp-job-manager- 
applications\' );
    return $statuses;
}
这很好,但我的新单条“示例”是在下拉列表的底部输出的,我真的希望它排在第二位。有没有简单的方法可以做到这一点?非常感谢。

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

您可以通过使用array_splice() 功能与array_merge(). 以下是一个示例:

function add_new_job_application_status( $statuses ) {
  return array_merge(
    array_splice( $statuses, 0, 1 ),
    array( \'example\' => _x( \'Example\', \'job_application\', \'wp-job-manager- 
applications\' ) ),
    array_splice( $statuses, 1, -1 ) 
  );
}
add_filter( \'job_application_statuses\', \'add_new_job_application_status\' );
此函数接受$statuses 数组中的其他项,并将其合并在一起。您需要这样做,因为splice不支持在阵列中的特定点插入多维阵列。希望这有帮助。

相关推荐

为内置钩子调用do_action和Apply_Filters是否安全?

我正在开发一个插件,它需要复制一些内置的WordPress逻辑。(此逻辑不能用任何内置方法调用,也不能独立连接到。)在这个动作序列中,WordPress的正常行为是调用动作挂钩(do_action(\'wp_login\', ...)) 和过滤器挂钩(apply_filters(\'login_redirect\', ...)).如果在对应于在Core中调用它们的时间点调用它们,那么直接从我的插件调用这些内置钩子是否安全(并且是可以接受的做法)?或者,其他与此相关的开发人员期望在非常特定的时间执行操作的风