Adicione o filtro várias vezes usando apenas uma function mestre

É possível usar add_filter com digamos uma matriz de valores diferentes?

para conseguir algo como o seguinte:

foreach($templates as $name) { add_filter( 'single_template', function ( $template ) { global $post; if ($post->post_type == $name) { $template = dirname( __FILE__ ) . $name . '.php'; } return $template; }); } 

Solutions Collecting From Web of "Adicione o filtro várias vezes usando apenas uma function mestre"

Use uma declaração de use :

 add_filter( 'single_template', function ( $template ) use ( $name ) { 

Ou simplesmente passar todos os modelos ao mesmo tempo e criar apenas uma function:

 add_filter( 'single_template', function ( $file ) use ( $templates ) { global $post; if ( in_array ( $post->post_type, $templates ) ) return __DIR__ . "/{$post->post_type}.php"; return $file; });