为什么我的动作挂钩在function.php上没有执行?

I have a action hook on function.php in order to redirect url based on current day. Please see my code below. I tried with init hook/after_theme_setup hook but this code not execute. Please give me reason for this error.

<?php


function load_category_by_day(){
if( is_home() && ! is_front_page() ){
$current_day = strtolower( date('N') ); // 'monday', 'sunday', etc.

wp_safe_redirect( site_url( "/category/$current_day/" ) ); 
}
} 
add_action( 'init', 'load_category_by_day' );
?>

Try this:

function load_category_by_day(){

if( is_home() && ! is_front_page() ){
$current_day = strtolower( date('N') ); // 'monday', 'sunday', etc.

wp_safe_redirect( site_url( "/category/$current_day/" ) ); 

exit;
}
} 
add_action( 'template_redirect', 'load_category_by_day' );