Функция user_trailingslashit(): добавление или удаление слеша в URL

## Функция user_trailingslashit() │ WP 2.2.0

Функция user_trailingslashit() добавляет или удаляет слеш (/) в конце указанного URL. Как она работает, зависит от структуры постоянных ссылок (permalinks) вашего сайта.

Если ваша структура постоянных ссылок подразумевает наличие слеша в конце URL, то функция добавит его. Если же в структуре ссылки нет слеша, то функция уберет его.

Результат обработки передается через фильтр user_trailingslashit.

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

- trailingslashit()
- untrailingslashit()

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

- get_comments_pagenum_link()

### Производительность

- Время выполнения — 0.00005 сек (очень быстро).
- При 50000 вызовах — 0.076 сек (фактически моментально).

### Хуки функции

- user_trailingslashit

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

Функция возвращает строку — URL с добавленным или удаленным слешем в конце.

## Как использовать

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

```php
user_trailingslashit( $string, $type_of_url );

Параметры:

  • $string (строка, обязательный) — URL, который нужно обработать (с слешем или без).
  • $type_of_url (строка, не обязательный) — тип обрабатываемого URL. Этот параметр передается в хук user_trailingslashit, чтобы можно было определить тип ссылки при использовании хука. Известные типы:

    • single (одиночная запись)
    • single_trackback (отслеживание отдельной записи)
    • single_feed (поток отдельной записи)
    • single_paged (страница отдельной записи)
    • feed (поток)
    • category (категория)
    • page (страница)
    • year (год)
    • month (месяц)
    • day (день)
    • paged (пагинация)
    • post_type_archive (архив типов записей)

По умолчанию: '' (пустая строка)

Примеры

0

Как удалить или добавить слеш

Предположим, у вас есть URL http://example.com/foo/. Давайте посмотрим, как функция будет работать в зависимости от текущей структуры постоянных ссылок вашего сайта.

$url = 'http://example.com/foo/';

// Структура постоя��ных ссылок: /%postname%
$url = user_trailingslashit( $url ); // Результат: http://example.com/foo

// Структура постоянных ссылок: /%postname%/
$url = user_trailingslashit( $url ); // Результат: http://example.com/foo/

Замечания

  • Глобальный объект: WP_Rewrite. Используйте переменную $wp_rewrite, чтобы получить доступ к компоненту переписывания в WordPress.

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

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

Код функции user_trailingslashit()

Файл: wp-includes/link-template.php

function user_trailingslashit( $url, $type_of_url = '' ) {
    global $wp_rewrite;
    if ( $wp_rewrite->use_trailing_slashes ) {
        $url = trailingslashit( $url );
    } else {
        $url = untrailingslashit( $url );
    }

    /**
     * Фильтрует строку с слешом в конце, в зависимости от того, настроен ли сайт на
     * использование слешей в конце.
     *
     * @since 2.2.0
     *
     * @param string $url          URL с или без слеша в конце.
     * @param string $type_of_url  Рассматриваемый тип URL. Принимает значения:
     *                             'single', 'single_trackback', 'single_feed', 
     *                             'single_paged', 'commentpaged', 'paged', 'home', 
     *                             'feed', 'category', 'page', 'year', 
     *                             'month', 'day', 'post_type_archive'.
     */
    return apply_filters( 'user_trailingslashit', $url, $type_of_url );
}

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

Функции форматирования:

  • absint()
  • add_magic_quotes()
  • antispambot()
  • backslashit()
  • balanceTags()
  • capital_P_dangit()
  • convert_smilies()
  • ent2ncr()
  • force_balance_tags()
  • links_add_target()
  • make_clickable()
  • normalize_whitespace()
  • number_format_i18n()
  • remove_accents()
  • set_url_scheme()
  • shortcode_unautop()
  • size_format()
  • strip_fragment_from_url()
  • trailingslashit()
  • untrailingslashit()
  • url_shorten()
  • utf8_uri_encode()
  • wp_convert_hr_to_bytes()
  • wp_html_excerpt()
  • wp_rel_nofollow()
  • wp_specialchars_decode()
  • wp_trim_words()
  • wpautop()
  • wptexturize()
  • zeroise()

Leave a Reply

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