Jak najłatwiej powstrzymać WP przed wylogowaniem mnie

28

Po pewnym czasie WP wylogowuje wszystkich użytkowników i zmusza ich do ponownego zalogowania. W przypadku środowisk programistycznych na moim komputerze lokalnym jest to nieprzyjemne i absolutnie niepotrzebne.

Czy istnieje oparty na API sposób wyłączania automatycznego wylogowywania na czas nieokreślony? Idealnie chciałbym coś, co mogę dodać wp-config.phpwraz z innymi ustawieniami związanymi z konfiguracją programistów.

Wtyczka byłaby dla mnie nadmierna, więc nie będę uważał jej za odpowiedź, ale równie dobrze możesz ją opublikować jako opcję.

jerclarke
źródło

Odpowiedzi:

27

Domyślnie pole wyboru „Remember Me” pozwala zapamiętać Cię na 14 dni. Jest to jednak możliwe do filtrowania.

Ten kod zmieni tę wartość:

add_filter( 'auth_cookie_expiration', 'keep_me_logged_in_for_1_year' );

function keep_me_logged_in_for_1_year( $expirein ) {
    return 31556926; // 1 year in seconds
}
Viper007Bond
źródło
1
Właśnie tego potrzebowałem. Myślę, że stała dla tej wartości byłaby naprawdę przydatna, ale kolejnym najlepszym rozwiązaniem jest filtr. Przydałby mi się nawet create_function()jeden wiersz.
jerclarke
2
create_function()jest wolny i utrudnia usunięcie filtra. Najlepszą praktyką jest używanie funkcji. :)
Viper007Bond
Możesz nawet pobrać najnowszą wersję PHP i napisać ją jako zamknięcie: php.net/manual/en/functions.anonymous.php - WordPress to powstrzymuje. Po prostu nie przeszkadzaj sobie i nie używaj już create_function (). To jest do bani.
hakre
1
YEAR_IN_SECONDSmożna zamiast tego użyć 31556926. Są też inne stałe. (Zobacz wp-includes/default-constants)
Upeksha,
1
@Upeksha: W chwili pisania tej odpowiedzi te stałe nie istniały. ;) Masz jednak rację, że teraz, kiedy to robią, lepiej byłoby z nich korzystać.
Viper007Bond
4

Ma to więcej wspólnego z tym, jak przeglądarka przechowuje pliki cookie. Kiedy się zalogujesz, powinien zapisać plik cookie, a WordPress odczyta go, aby sprawdzić, czy jesteś uwierzytelniony (przynajmniej tak rozumiem).

We wszystkich lokalnych instalacjach deweloperskich moja nazwa użytkownika to admin, a moje hasło to admin. Nie uważam 8 liter za naprawdę wielką rzecz, ale może piszę szybciej?

Curtismchale
źródło
Korzystam z kopii zapasowych baz danych na żywo, w których zawsze mam silne hasła do wszystkich kont administratora. Często też mam różne nazwy użytkowników dla różnych stron, aw wielu przypadkach Firefox ma problem z rozróżnieniem różnych lokalnych instalacji dla celów autouzupełniania.
jerclarke
Dokładnie, ustawienia twojej przeglądarki nadpisują funkcję zapamiętaj mnie.
Brad Dalton,
-2

Czy to działa, jeśli umieścisz go w wp-config.php?

function wp_validate_auth_cookie($cookie='',$scheme='') {
    return 1; // admin user id
}

Nie dokładnie przetestowane. Nie tyle „nigdy mnie nie wylogowuje”, ale raczej „traktuj każdego jak administratora”.

Annika Backstrom
źródło
5
NIGDY NIE UŻYWAJ W PRODUKCJI !!! Brzmi jak instalacja piaskownicy.
Arlen Beiler,
2
NIE ZRÓB TO, bo szybko zostaniesz zhakowany!
T.Todua