auth_redirect() WP 1.5.0

Перевіряє чи авторизований користувач, перед тим як допустити його на будь-яку сторінку сайту.

Якщо користувач не авторизований, перенаправляє його на сторінку авторизації.

Потрібна закриття сторінок від незареєстрованих користувачів.

Якщо ця функція буде викликана на сторінці постів і користувач не зареєстрований і не авторизований (не увійшов під своїм логіном), його перекине на сторінку авторизації. Після входу користувача поверне на ту сторінку, де він був перед переадресацією.

Це init .

Заміна функції (перевизначення) — у плагіні можна створити функцію з такою самою назвою, тоді вона замінить поточну функцію.

Повертає

null.

Використання

auth_redirect();

Приклади

0

#1 Закриваємо пост від не авторизованих користувачів

Використовуйте такий код у header.php:

if( is_single() ){
	auth_redirect();
}

список змін

З версії 1.5.0Введено.

Код auth_redirect() WP 6.0.2

function auth_redirect() {
	$secure = ( is_ssl() || force_ssl_admin() );

	/**
	 * Filters whether to use a secure authentication redirect.
	 *
	 * @ Since 3.1.0
	 *
	 * @param bool $secure Whether use a secure authentication redirect. Default false.
	 */
	$secure = apply_filters( 'secure_auth_redirect', $secure );

	// If https is required and request is http, redirect.
	if ( $secure && ! is_ssl() && false !== strpos( $_SERVER['REQUEST_URI'], 'wp-admin' ) ) {
		if ( 0 === strpos( $_SERVER['REQUEST_URI'], 'http' ) ) {
			wp_redirect( set_url_scheme( $_SERVER['REQUEST_URI'], 'https' ) );
			exit;
		} else {
			wp_redirect( 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
			exit;
		}
	}

	/**
	 * Filters the authentication redirect scheme.
	 *
	 * @ Since 2.9.0
	 *
	 * @param string $scheme Authentication redirect scheme. Default empty.
	 */
	$scheme = apply_filters( 'auth_redirect_scheme', '');

	$user_id = wp_validate_auth_cookie('', $scheme);
	if ($user_id) {
		/**
		 * Fires до authentication redirect.
		 *
		 * @ Since 2.8.0
		 *
		 * @param int $user_id User ID.
		 */
		do_action( 'auth_redirect', $user_id );

		// If the user wants ssl but the session is not ssl, redirect.
		if ( ! $secure && get_user_option( 'use_ssl', $user_id ) && false !== strpos( $_SERVER['REQUEST_URI'], 'wp-admin' ) ) {
			if ( 0 === strpos( $_SERVER['REQUEST_URI'], 'http' ) ) {
				wp_redirect( set_url_scheme( $_SERVER['REQUEST_URI'], 'https' ) );
				exit;
			} else {
				wp_redirect( 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
				exit;
			}
		}

		return; // The cookie is good, so we're done.
	}

	// The cookie is no good, so force login.
	nocache_headers();

	$redirect = ( strpos( $_SERVER['REQUEST_URI'], '/options.php' ) && wp_get_referer() ) ? wp_get_referer() : set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );

	$ login_url = wp_login_url ($ redirect, true);

	wp_redirect($login_url);
	exit;
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *