Спасибо @Peter HvD, я наконец-то понял, что такое "перехват", и я сделал это (все работает отлично):
add_action('loop_start', 'my_function');
function my_function() {
if (is_user_logged_in()) {
echo 'logged in';
} else {
echo 'not logged in';
}
}
Проблема была в том, что я использовал add_action (init, 'my_function'); когда я пытался таким образом, я не знал, что мне нужно изменить 'init' на что-то.
Что касается вопроса, вы уже дали ответ. Спасибо!