admin_url

Позволяет изменить URL-адрес административной области
Хук WordPress
INT 2.8.0
WordPress Icon
Содержание
  1. Описание хука
  2. Примеры использования
  3. Изменение URL административной области сайта
  4. Перенаправление на другую страницу административной области
  5. Добавление параметров к URL административной области
  6. Получение URL административной области для конкретного сайта
  7. Вопросы и ответы
  8. Как изменить схему URL административной области?
  9. Как добавить дополнительный путь к URL административной области?
  10. Как получить URL административной области для определенного сайта в сети WordPress?
  11. Как обойти функцию force_ssl_admin() при использовании admin_url хука?
  12. Как получить URL административной области без указания пути?
  13. Как использовать admin_url хук для создания ссылки на определенную страницу в административной области?
  14. Как использовать admin_url хук для создания ссылки на определенный раздел в административной области?
  15. Как использовать admin_url хук для перенаправления пользователя на другую страницу в административной области?
  16. Как использовать admin_url хук для изменения URL административной области в многосайтовой установке?
  17. Связанные элементы

Описание хука

Хук «admin_url» позволяет определить и изменить URL-адрес административной области WordPress. Он используется для создания ссылок на различные страницы и ресурсы в административной области.

Использование

apply_filters( 'admin_url', string $url, string $path, int|null $blog_id, string|null $scheme )

Этот хук принимает следующие параметры:

  • $url (строка) — полный URL-адрес административной области, включая схему и путь.
  • $path (строка) — путь относительно URL-адреса административной области. Если путь не указан, используется пустая строка.
  • $blog_id (int|null) — идентификатор сайта или null для текущего сайта.
  • $scheme (строка|null) — используемая схема. Принимает значения ‘http’, ‘https’, ‘admin’ или null. По умолчанию используется ‘admin’, который учитывает настройки force_ssl_admin() и is_ssl().
<?php
/**
 * Пример использования хука admin_url.
 *
 * @param string      $url      Полный URL-адрес административной области.
 * @param string      $path     Путь относительно URL-адреса административной области.
 * @param int|null    $blog_id  Идентификатор сайта или null для текущего сайта.
 * @param string|null $scheme   Используемая схема.
 * @return string Измененный URL-адрес административной области.
 */
function custom_admin_url( $url, $path, $blog_id, $scheme ) {
    // Добавляем параметр 'custom_param' к URL-адресу административной области.
    $url = add_query_arg( 'custom_param', 'custom_value', $url );
    // Возвращаем измененный URL-адрес.
    return $url;
}
add_filter( 'admin_url', 'custom_admin_url', 10, 4 );

В этом примере мы создаем функцию «custom_admin_url», которая принимает параметры хука «admin_url». Мы добавляем к URL-адресу административной области дополнительный параметр «custom_param» со значением «custom_value» с помощью функции «add_query_arg». Затем мы возвращаем измененный URL-адрес с помощью оператора «return». Наконец, мы добавляем нашу функцию в хук «admin_url» с помощью функции «add_filter».

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

Изменение URL административной области сайта


/**
 * Фильтрует URL административной области.
 *
 * @param string      $url      Полный URL административной области, включая схему и путь.
 * @param string      $path     Путь относительно URL административной области. Пустая строка, если путь не указан.
 * @param int|null    $blog_id  Идентификатор сайта или null для текущего сайта.
 * @param string|null $scheme   Схема, используемая для URL. Принимает значения 'http', 'https', 'admin' или null.
 *                              По умолчанию 'admin', что соответствует force_ssl_admin() и is_ssl().
 * @return string Измененный URL административной области.
 */
function custom_admin_url( $url, $path, $blog_id, $scheme ) {
    // Добавляем к URL административной области дополнительный путь
    $new_path = '/custom-path' . $path;
    $new_url  = str_replace( $path, $new_path, $url );
    return $new_url;
}
add_filter( 'admin_url', 'custom_admin_url', 10, 4 );

В данном примере мы используем хук admin_url для изменения URL административной области сайта. Функция custom_admin_url принимает четыре параметра: $url — полный URL административной области, $path — путь относительно URL административной области, $blog_id — идентификатор сайта или null для текущего сайта, $scheme — схема, используемая для URL.

В данном примере мы добавляем к URL административной области дополнительный путь «/custom-path». Для этого мы используем функцию str_replace, которая заменяет оригинальный путь на новый путь. Затем измененный URL возвращается из функции.

Перенаправление на другую страницу административной области


/**
 * Фильтрует URL административной области для перенаправления на другую страницу.
 *
 * @param string      $url      Полный URL административной области, включая схему и путь.
 * @param string      $path     Путь относительно URL административной области. Пустая строка, если путь не указан.
 * @param int|null    $blog_id  Идентификатор сайта или null для текущего сайта.
 * @param string|null $scheme   Схема, используемая для URL. Принимает значения 'http', 'https', 'admin' или null.
 *                              По умолчанию 'admin', что соответствует force_ssl_admin() и is_ssl().
 * @return string Измененный URL административной области для перенаправления.
 */
function redirect_admin_url( $url, $path, $blog_id, $scheme ) {
    // Перенаправляем на страницу "Настройки"
    $redirect_url = $url . 'options-general.php';
    return $redirect_url;
}
add_filter( 'admin_url', 'redirect_admin_url', 10, 4 );

В данном примере мы используем хук admin_url для перенаправления на другую страницу административной области. Функция redirect_admin_url принимает четыре параметра: $url — полный URL административной области, $path — путь относительно URL административной области, $blog_id — идентификатор сайта или null для текущего сайта, $scheme — схема, используемая для URL.

В данном примере мы перенаправляем на страницу «Настройки» путем добавления к URL административной области дополнительного пути «options-general.php». Измененный URL возвращается из функции и используется для перенаправления.

Добавление параметров к URL административной области


/**
 * Фильтрует URL административной области для добавления параметров.
 *
 * @param string      $url      Полный URL административной области, включая схему и путь.
 * @param string      $path     Путь относительно URL административной области. Пустая строка, если путь не указан.
 * @param int|null    $blog_id  Идентификатор сайта или null для текущего сайта.
 * @param string|null $scheme   Схема, используемая для URL. Принимает значения 'http', 'https', 'admin' или null.
 *                              По умолчанию 'admin', что соответствует force_ssl_admin() и is_ssl().
 * @return string Измененный URL административной области с добавленными параметрами.
 */
function add_query_args_admin_url( $url, $path, $blog_id, $scheme ) {
    // Добавляем параметры к URL административной области
    $new_url = add_query_arg( array(
        'param1' => 'value1',
        'param2' => 'value2',
    ), $url );
    return $new_url;
}
add_filter( 'admin_url', 'add_query_args_admin_url', 10, 4 );

В данном примере мы используем хук admin_url для добавления параметров к URL административной области. Функция add_query_args_admin_url принимает четыре параметра: $url — полный URL административной области, $path — путь относительно URL административной области, $blog_id — идентификатор сайта или null для текущего сайта, $scheme — схема, используемая для URL.

В данном примере мы используем функцию add_query_arg для добавления параметров к URL административной области. Массив параметров передается в качестве первого аргумента функции, а оригинальный URL — вторым аргументом. Функция возвращает измененный URL с добавленными параметрами.

Получение URL административной области для конкретного сайта


/**
 * Получает URL административной области для конкретного сайта.
 *
 * @param int|null    $blog_id  Идентификатор сайта или null для текущего сайта.
 * @param string|null $path     Путь относительно URL административной области. Пустая строка, если путь не указан.
 * @param string|null $scheme   Схема, используемая для URL. Принимает значения 'http', 'https', 'admin' или null.
 *                              По умолчанию 'admin', что соответствует force_ssl_admin() и is_ssl().
 * @return string URL административной области для конкретного сайта.
 */
function get_specific_admin_url( $blog_id, $path, $scheme ) {
    // Получаем URL административной области для конкретного сайта
    $specific_url = get_admin_url( $blog_id, $path, $scheme );
    return $specific_url;
}

В данном примере мы используем функцию get_admin_url для получения URL административной области для конкретного сайта. Функция get_specific_admin_url принимает три параметра: $blog_id — идентификатор сайта или null для текущего сайта, $path — путь относительно URL административной области, $scheme — схема, используемая для URL.

В данном примере мы просто вызываем функцию get_admin_url с переданными параметрами и возвращаем полученный URL административной области для конкретного сайта.

Вопросы и ответы

Как изменить схему URL административной области?

Для изменения схемы URL административной области в WordPress можно использовать хук admin_url. Этот хук позволяет изменить схему URL, которая используется для доступа к административной области.

Пример кода:


function change_admin_url_scheme( $url, $path, $blog_id, $scheme ) {
    // Изменяем схему URL на 'https'
    $scheme = 'https';
    return $url;
}
add_filter( 'admin_url', 'change_admin_url_scheme', 10, 4 );

Как добавить дополнительный путь к URL административной области?

Для добавления дополнительного пути к URL административной области в WordPress можно использовать хук admin_url. Этот хук позволяет добавить путь к существующему URL административной области.

Пример кода:


function add_admin_url_path( $url, $path, $blog_id, $scheme ) {
    // Добавляем путь '/custom-path' к URL административной области
    $path = '/custom-path' . $path;
    return $url;
}
add_filter( 'admin_url', 'add_admin_url_path', 10, 4 );

Как получить URL административной области для определенного сайта в сети WordPress?

Для получения URL административной области для определенного сайта в сети WordPress можно использовать хук admin_url и указать идентификатор сайта в параметре $blog_id.

Пример кода:


function get_site_admin_url( $url, $path, $blog_id, $scheme ) {
    // Получаем URL административной области для сайта с идентификатором 2
    if ( $blog_id == 2 ) {
        $url = get_site_url( $blog_id ) . '/wp-admin/';
    }
    return $url;
}
add_filter( 'admin_url', 'get_site_admin_url', 10, 4 );

Как обойти функцию force_ssl_admin() при использовании admin_url хука?

Функция force_ssl_admin() в WordPress отвечает за принудительное использование SSL-соединения в административной области. Иногда возникает необходимость обойти эту функцию и использовать обычное HTTP-соединение.

Для этого можно воспользоваться хуком admin_url и переопределить схему (scheme) в URL административной области. В параметре $scheme хука admin_url можно указать значение null, чтобы использовать обычное HTTP-соединение.

add_filter( 'admin_url', 'my_admin_url', 10, 4 );
function my_admin_url( $url, $path, $blog_id, $scheme ) {
    $scheme = null; // Используем обычное HTTP-соединение
    return $url;
}

Как получить URL административной области без указания пути?

Иногда требуется получить URL административной области без указания пути к конкретному файлу или странице. Для этого можно использовать хук admin_url с пустым значением для параметра $path.

add_filter( 'admin_url', 'my_admin_url', 10, 4 );
function my_admin_url( $url, $path, $blog_id, $scheme ) {
    $path = ''; // Пустой путь
    return $url;
}

Как использовать admin_url хук для создания ссылки на определенную страницу в административной области?

Хук admin_url также может быть использован для создания ссылки на определенную страницу в административной области. Для этого нужно указать путь к файлу или странице в параметре $path.

add_filter( 'admin_url', 'my_admin_url', 10, 4 );
function my_admin_url( $url, $path, $blog_id, $scheme ) {
    $path = 'edit.php'; // Путь к странице редактирования записей
    return $url;
}

Как использовать admin_url хук для создания ссылки на определенный раздел в административной области?

Хук admin_url позволяет создать ссылку на определенный раздел в административной области WordPress. Для этого необходимо использовать функцию admin_url() и передать ей путь к нужному разделу.

Пример использования хука admin_url для создания ссылки на раздел «Настройки» в административной области:

echo '<a href="' . admin_url( 'options-general.php' ) . '">Настройки</a>';

Как использовать admin_url хук для перенаправления пользователя на другую страницу в административной области?

Хук admin_url также может быть использован для перенаправления пользователя на другую страницу в административной области. Для этого необходимо использовать функцию wp_redirect() и передать ей ссылку, созданную с помощью admin_url().

Пример использования хука admin_url для перенаправления пользователя на страницу «Добавить новый пост» в административной области:

wp_redirect( admin_url( 'post-new.php' ) );

Как использовать admin_url хук для изменения URL административной области в многосайтовой установке?

В многосайтовой установке WordPress хук admin_url может быть использован для изменения URL административной области для каждого сайта в сети. Для этого необходимо передать идентификатор сайта в параметр $blog_id функции admin_url().

Пример использования хука admin_url для создания ссылки на раздел «Настройки» в административной области конкретного сайта в многосайтовой установке:

$blog_id = 2; // Идентификатор сайта
echo '<a href="' . admin_url( 'options-general.php', $blog_id ) . '">Настройки</a>';

Хук admin_url является мощным инструментом для работы с административной областью WordPress. Он позволяет создавать ссылки на определенные разделы, перенаправлять пользователей на нужные страницы и изменять URL административной области в многосайтовой установке. Используйте этот хук для удобной и гибкой работы с административной частью вашего сайта.

Связанные элементы

  • Функция admin_url(): возвращает URL административной области сайта.
  • Функция network_admin_url(): возвращает URL административной области сети.
  • Функция wp_redirect(): выполняет перенаправление на указанный URL.
  • Хук admin_init: вызывается при инициализации административной области.
  • Хук admin_enqueue_scripts: вызывается при подключении скриптов и стилей в административной области.
  • Хук admin_menu: вызывается при создании меню в административной области.
  • Хук admin_notices: вызывается для вывода уведомлений в административной области.
  • Класс WP_Admin_Bar: предоставляет методы для работы с панелью администратора.
  • Класс WP_Screen: предоставляет информацию о текущем экране административной области.
Обсуждение