Принудительное использование SSL в админке WordPress: FORCE_SSL_ADMIN()

## FORCE_SSL_ADMIN() │ WP 2.6.0

### Что такое FORCE_SSL_ADMIN?

Функция FORCE_SSL_ADMIN() позволяет установить обязательное использование SSL (защищённый протокол передачи данных) для экранов администрирования в WordPress. Это означает, что при включении этой функции администраторы будут уверены, что все их соединения с сайтом защищены.

### Используется в

Эта функция используется в функции set_url_scheme().

### Нет хуков

Для этой функции не предусмотрены хуки.

### Возвращаемое значение

Функция возвращает true или false. Если SSL принудительно включён, то возвращается true, в противном случае — false.

### Применение

Функция вызывается следующим образом:

```php
force_ssl_admin( $force );

где $force — это логическое значение (или строка, указывающая на true/false), которое определяет, следует ли принудительно использовать SSL на экранах администрирования. По умолчанию — null.

Примеры использования

Пример 1: Изменение возвращаемого значения

force_ssl_admin( true );
if ( force_ssl_admin() )
    echo 'Администратор должен использовать SSL';
else
    echo 'Этот код никогда не выполнится';

force_ssl_admin( false );
if ( force_ssl_admin() )
    echo 'Этот код никогда не выполнится';
else
    echo 'Административная область НЕ должна использовать SSL';

Прим��р 2: Принудительный редирект на HTTPS

Этот пример показывает, как перенаправить текущую страницу на HTTPS, если используется протокол HTTP:

if ( force_ssl_admin() && ! is_ssl() ) {

    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;
    }
}

Пример 3: Сброс настроек к значениям по умолчанию

force_ssl_admin( FORCE_SSL_ADMIN );

История изменений

  • С версии 2.6.0 — функция была введена.

Как работает FORCE_SSL_ADMIN?

В коде функции FORCE_SSL_ADMIN создается статическая переменная $forced, которая хранит информацию о том, принудителен ли SSL:

function force_ssl_admin( $force = null ) {
    static $forced = false;

    if ( ! is_null( $force ) ) {
        $old_forced = $forced;
        $forced     = $force;
        return $old_forced;
    }

    return $forced;
}

Если параметр $force задаётся, он меняет значение переменной $forced и возвращает старое значение. Если параметр не задан, функция просто возвращает текущее значение $forced.

Связанные функции

  • set_url_scheme()

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *