Фильтры на странице входа

Я пытаюсь изменить страницу входа в систему, используя встроенные фильтры . Add_actions работают так, как ожидалось, но я не могу заставить фильтры работать. Это код, который у меня есть в моих functions.php:

add_filter( 'login_form_top', 'filter_top_login' ); function filter_top_login( $content ) { return 'This is what I want it to say!'; } 

но он ничего не делает, когда я загружаю страницу wp-login.php. Что я делаю не так?

Хотя login_form_top является допустимым крюком, wp_login_form функцией wp_login_form , wp_login_form не используется в wp-login.php , и эта функция не используется в другом месте, которое я могу найти. Я grep всю установку 3.5.1 и нашел одну ссылку на функцию – место, где она определена . По-видимому, он не используется в любом месте Core.

Вам нужно будет найти файл wp-login.php для перехватов, например login_form , и попытаться сделать то, что вам нужно, с помощью этих перехватов или написать свою собственную страницу входа (хотя похоже, что это то, чего вы пытаетесь избежать) ,

Вы можете использовать фильтр login_message , который отобразит ваш текст чуть выше формы входа в систему:

 add_filter( 'login_message', 'my_login_message' ); function my_login_message() { return 'This is my message'; } 

Фильтр login_form_top не вызывается в wp-login.php.

Единственный крючок, который я вижу в wp-login.php в области формы входа, – login_form (он login_form в строке 689). Но он помещается после обоих входов (логин / пароль), поэтому он больше похож на login_form_middle .

просто удалите переменную $ content,

  add_filter( 'login_form_top', 'filter_top_login' ); function filter_top_login() { return 'This is what I want it to say!'; }