Получение ссылки для поиска в WordPress: использование и примеры (GET_SEARCH_LINK)

Получение ссылки для поиска в WordPress (GET_SEARCH_LINK)

Функция get_search_link() используется для получения постоянной ссылки (permalink) для страницы поиска. Это означает, что с её помощью мы можем создавать ссылки на результаты поиска на нашем сайте.

Как работает функция

Функция использует другую функцию get_search_query(), чтобы получить строку запроса для поиска. Производительность её работы очень высокая: выполнение занимает примерно 0.000102 секунды, а при многократном вызове (50,000 раз) — около 2.75 секунды.

Хуки

Функция использует хук search_link, который позволяет изменять результирующую ссылку.

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

Функция возвращает строку, которая содержит ссылку для поиска.

Использование функции

get_search_link( $query );

Параметры

  • $query (строка): строка запроса для поиска. Если параметр пустой, используется текущий запрос. Значение по умолчанию: пустая строка ('').

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

Пример 1: Получение ссылки на страницу поиска с запросом

echo get_search_link( 'что-то' );
// http://example.com/search/что-то

Пример 2: Получение ссылки на страницу поиска с запросом, содержащим специальные символы

echo get_search_link( 'foo " bar' );
// http://example.com/search/foo+%22+bar

Напоминание

Функция использует глобальный объект WP_Rewrite. Этот объект отвечает за создание структуры URL для различных типов контента в WordPress.

Изменения в версии

Функция была введена в версии 3.0.0.

Полный код функции

Вот код функции get_search_link(), который находится в файле link-template.php:

function get_search_link( $query = '' ) {
global $wp_rewrite;

if ( empty( $query ) ) {
    $search = get_search_query( false );
} else {
    $search = stripslashes( $query );
}

$permastruct = $wp_rewrite->get_search_permastruct();

if ( empty( $permastruct ) ) {
    $link = home_url( '?s=' . urlencode( $search ) );
} else {
    $search = urlencode( $search );
    $search = str_replace( '%2F', '/', $search ); // Заменяем %2F на /, чтобы не было ошибок в URL
    $link   = str_replace( '%search%', $search, $permastruct );
    $link   = home_url( user_trailingslashit( $link, 'search' ) );
}

/**
 * Фильтрует ссылку поиска.
 *
 * @since 3.0.0
 *
 * @param string $link   Ссылка для поиска.
 * @param string $search Закодированная строка поиска.
 */
return apply_filters( 'search_link', $link, $search );

}

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

Функция get_search_link() работает вместе с другими функциями для построения URL. Вот некоторые из них:

  • admin_url()
  • attachment_url_to_postid()
  • build_query()
  • get_home_url()
  • url_to_postid()

Эти функции могут быть полезны, если вы хотите работать с URL-адресами в WordPress.

Leave a Reply

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