Функция sanitize_title() в WordPress: синтаксис, примеры, хуки

# Функция SANITIZE_TITLE() │ WP 1.0.0

Функция sanitize_title() используется для очистки переданной строки (названия) с целью преобразования её в «слиз» (slug) или возвращения запасного названия.

## Описание

По умолчанию функция преобразует акцентированные символы в ASCII и ограничивает вывод допустимыми символами: буквами и цифрами, знаком подчеркивания (_) и дефисом (-). Это происходит с помощью фильтра sanitize_title.

Если переменная $title пуста, а переменная $fallback_title задана, будет использовано именно её значение.

**Время выполнения:**  
1 раз — 0.000197 сек (быстро) | 50000 раз — 6.03 сек (быстро) | PHP 7.0.2, WP 4.4.2

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

- sanitize_title

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

Функция возвращает строку — очищенную строку.

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

Функция имеет следующий синтаксис:

```php
sanitize_title( $title, $fallback_title, $context );

Параметры

  • $title (строка, обязательный) — строка, которую нужно очистить.
  • $fallback_title (строка) — название, которое будет использовано, если $title пустое. По умолчанию: пустая строка ''.
  • $context (строка) — операция, для которой строка очищается. Если установлен в значение 'save', строка проходит через remove_accents(). По умолчанию: 'save'.

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

Пример 1: Очистка названия

$new_url = sanitize_title( 'Это длинный заголовок, который может быть у поста или страницы' );
echo $new_url; // вывод: eto-dlinnyiy-zagolovok-kotoryiy-mozhet-byit-u-posta-ili-stranitsy

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

Если плагин не установлен, возвращается строка, содержащая процентные коды, например:

%d1%8d%d1%82%d0%be-%d0%b4%d0%bb%d0%b8%d0%bd%d0%bd%d1%8b%d0%b9-%d0%b7%d0%b0%d0%b3%d0%be%d0%bb%d0%be%d0%b2%d0%be%d0%ba-%d0%ba%d0%be%d1%82%d0%be%d1%80%d1%8b%d0%b9-%d0%bc%d0%be%d0%b6%d0%b5%d1%82-%d0%b1

Пример 2: Использование запасного названия

echo sanitize_title( '', 'default заголовок' ); // вывод: default заголовок

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

Исходный код функции вы можете найти в файле wp-includes/formatting.php (строки 2207-2230):

function sanitize_title( $title, $fallback_title = '', $context = 'save' ) {
    $raw_title = $title;

    if ( 'save' === $context ) {
        $title = remove_accents( $title );
    }

    $title = apply_filters( 'sanitize_title', $title, $raw_title, $context );

    if ( '' === $title || false === $title ) {
        $title = $fallback_title;
    }

    return $title;
}

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

  • sanitize_email()
  • sanitize_file_name()
  • sanitize_html_class()
  • sanitize_key()
  • sanitize_meta()
  • sanitize_mime_type()
  • sanitize_option()
  • sanitize_post()
  • sanitize_post_field()
  • sanitize_sql_orderby()
  • sanitize_term()
  • sanitize_term_field()
  • sanitize_text_field()
  • sanitize_textarea_field()
  • sanitize_title_for_query()
  • sanitize_title_with_dashes()
  • sanitize_url()
  • sanitize_user()
  • wc_clean()
  • wp_check_invalid_utf8()

Функции, связанные с очищением и экранированием, также помогут вам обеспечить безопасность данных в WordPress. Берегите ваши данные и используйте эти функции правильно!

Leave a Reply

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