do_action
não funciona assim. Quando você chama do_action('crunchify_print_scripts_styles')
, o WP verifica sua lista de ações registradas e filtros para qualquer um que esteja anexado a um gancho chamado crunchify_print_scripts_styles
e, em seguida, executa essas funções.
E você provavelmente deseja remover isso:
add_action( 'wp_enqueue_scripts', 'crunchify_print_scripts_styles');
... porque você não consegue obter o resultado de retorno de sua função.
Além disso, quando você usa esse gancho em particular, não pode garantir que outras funções não enfileirem mais scripts ou estilos após que você gerou sua lista. Use um gancho que seja acionado depois que todos os scripts e estilos tiverem sido enfileirados, como wp_head, por conveniência ou, melhor ainda, apenas chame sua função dentro do tema quando desejar exibir o resultado.
Retrabalhar seu código como esse deve funcionar ...
function crunchify_print_scripts_styles() {
$result = [];
$result['scripts'] = [];
$result['styles'] = [];
// Print all loaded Scripts
global $wp_scripts;
foreach( $wp_scripts->queue as $script ) :
$result['scripts'][] = $wp_scripts->registered[$script]->src . ";";
endforeach;
// Print all loaded Styles (CSS)
global $wp_styles;
foreach( $wp_styles->queue as $style ) :
$result['styles'][] = $wp_styles->registered[$style]->src . ";";
endforeach;
return $result;
}
Depois, dentro do seu tema:
print_r( crunchify_print_scripts_styles() );
... mostrará os resultados para a depuração, ou claro ...
$all_the_scripts_and_styles = crunchify_print_scripts_styles();
... lhe dará a lista para manipular.
Chamar no tema garante que você o chama depois que todos os scripts e estilos são enfileirados.
Para chamá-lo do seu plug-in, anexe-o a qualquer hook que seja executado depois de wp_enqueue_scripts, como wp_head, como mencionei acima:
add_action( 'wp_head', 'wpse_233142_process_list');
function wpse_233142_process_list() {
$all_the_scripts_and_styles = crunchify_print_scripts_styles();
// process your array here
}