site_url

Позволяет изменить URL-адрес сайта
Хук WordPress
INT 2.7.0
WordPress Icon

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

Хук «site_url» позволяет определить и изменить полный URL сайта, включая схему, путь и контекст. Этот хук используется для получения или изменения URL сайта в WordPress.

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

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

В данном примере применяется фильтр «site_url» к URL сайта. Параметры, которые принимает данный хук, включают полный URL сайта ($url), путь относительно URL сайта ($path), схему для контекста URL ($scheme) и идентификатор сайта ($blog_id).

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

В данном примере определена функция «custom_site_url», которая принимает параметры хука «site_url». Внутри функции мы добавляем параметр ‘custom’ к URL сайта и возвращаем измененный URL. Затем мы добавляем фильтр «site_url» с указанием функции «custom_site_url», приоритетом 10 и количеством параметров 4.

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

Преобразование URL-адреса сайта в относительный путь


/**
 * Функция преобразует URL-адрес сайта в относительный путь.
 *
 * @param string $url   Полный URL-адрес сайта, включая схему и путь.
 * @param string $path  Путь относительно URL-адреса сайта.
 * @param string|null $scheme  Схема для контекста URL-адреса сайта.
 * @param int|null $blog_id  Идентификатор сайта или null для текущего сайта.
 * @return string  Относительный путь URL-адреса сайта.
 */
function custom_site_url( $url, $path, $scheme, $blog_id ) {
    // Ваш код здесь.
    return $url;
}
add_filter( 'site_url', 'custom_site_url', 10, 4 );

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


/**
 * Функция добавляет параметр схемы к URL-адресу сайта.
 *
 * @param string $url   Полный URL-адрес сайта, включая схему и путь.
 * @param string $path  Путь относительно URL-адреса сайта.
 * @param string|null $scheme  Схема для контекста URL-адреса сайта.
 * @param int|null $blog_id  Идентификатор сайта или null для текущего сайта.
 * @return string  URL-адрес сайта с добавленным параметром схемы.
 */
function custom_site_url( $url, $path, $scheme, $blog_id ) {
    if ( $scheme === 'custom_scheme' ) {
        $url = str_replace( 'http://', 'custom://', $url );
    }
    return $url;
}
add_filter( 'site_url', 'custom_site_url', 10, 4 );

Изменение пути URL-адреса сайта


/**
 * Функция изменяет путь URL-адреса сайта.
 *
 * @param string $url   Полный URL-адрес сайта, включая схему и путь.
 * @param string $path  Путь относительно URL-адреса сайта.
 * @param string|null $scheme  Схема для контекста URL-адреса сайта.
 * @param int|null $blog_id  Идентификатор сайта или null для текущего сайта.
 * @return string  URL-адрес сайта с измененным путем.
 */
function custom_site_url( $url, $path, $scheme, $blog_id ) {
    if ( $path === '/old-path/' ) {
        $url = str_replace( '/old-path/', '/new-path/', $url );
    }
    return $url;
}
add_filter( 'site_url', 'custom_site_url', 10, 4 );

Получение URL-адреса сайта для определенного блога


/**
 * Функция возвращает URL-адрес сайта для определенного блога.
 *
 * @param string $url   Полный URL-адрес сайта, включая схему и путь.
 * @param string $path  Путь относительно URL-адреса сайта.
 * @param string|null $scheme  Схема для контекста URL-адреса сайта.
 * @param int|null $blog_id  Идентификатор сайта или null для текущего сайта.
 * @return string  URL-адрес сайта для указанного блога.
 */
function custom_site_url( $url, $path, $scheme, $blog_id ) {
    switch ( $blog_id ) {
        case 2:
            $url = 'https://example.com/blog2/';
            break;
        case 3:
            $url = 'https://example.com/blog3/';
            break;
        default:
            $url = 'https://example.com/';
    }
    return $url;
}
add_filter( 'site_url', 'custom_site_url', 10, 4 );

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

Как изменить схему URL сайта?

Для изменения схемы URL сайта в WordPress можно использовать хук «site_url».

Пример кода:


add_filter( 'site_url', 'change_scheme', 10, 4 );
function change_scheme( $url, $path, $scheme, $blog_id ) {
    // Изменяем схему на https
    $url = str_replace( 'http://', 'https://', $url );
    return $url;
}

Как получить полный URL сайта в WordPress?

Для получения полного URL сайта в WordPress можно использовать хук «site_url».

Пример кода:


add_filter( 'site_url', 'get_full_url', 10, 4 );
function get_full_url( $url, $path, $scheme, $blog_id ) {
    // Добавляем путь к URL сайта
    $url .= $path;
    return $url;
}

Как изменить путь к URL сайта?

Для изменения пути к URL сайта в WordPress можно использовать хук «site_url».

Пример кода:


add_filter( 'site_url', 'change_path', 10, 4 );
function change_path( $url, $path, $scheme, $blog_id ) {
    // Изменяем путь на /new-path/
    $url = str_replace( $path, '/new-path/', $url );
    return $url;
}

Как получить URL сайта без пути?

Для получения URL сайта без пути можно использовать функцию home_url(). Она возвращает базовый URL сайта без указания пути.

$url = home_url();
echo $url;

Как получить URL сайта с указанной схемой?

Для получения URL сайта с указанной схемой можно использовать функцию set_url_scheme(). Она принимает два параметра: URL сайта и схему, и возвращает URL сайта с указанной схемой.

$url = 'http://example.com';
$scheme = 'https';
$url_with_scheme = set_url_scheme( $url, $scheme );
echo $url_with_scheme;

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

Для получения URL сайта для определенного блога можно использовать функцию get_site_url(). Она принимает один параметр — ID блога, и возвращает URL сайта для указанного блога.

$blog_id = 2;
$url = get_site_url( $blog_id );
echo $url;

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

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

// Функция обратного вызова
function my_custom_site_url( $url, $path, $scheme, $blog_id ) {
    // Ваш код для переопределения URL сайта
    return $url;
}
// Регистрация функции обратного вызова с хуком
add_filter( 'site_url', 'my_custom_site_url', 10, 4 );

Хук site_url в WordPress позволяет изменить URL сайта или получить его с различными параметрами. Функции home_url(), set_url_scheme() и get_site_url() предоставляют удобные способы работы с URL сайта. Используя хук site_url, можно переопределить URL сайта по своим потребностям.

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

  • Функция get_site_url(): возвращает URL сайта.
  • Функция set_url_scheme(): устанавливает схему URL.
  • Функция network_site_url(): возвращает URL сайта в сети.
  • Класс WP_Site: представляет отдельный сайт в сети.
  • Класс WP_Site_Query: используется для запроса сайтов в сети.
Обсуждение