sanitize_title() WP 1.0.0

Очищає переданий рядок (заголовок) для використання його як ярлик (slug).

Із заголовка будуть видалені HTML та PHP теги. Якщо $title виявиться порожнім, замість нього буде взято значення з $fallback_title .

Незважаючи на назву функції, її можна використовувати в URL, щоб позбутися пробілів та інших небажаних символів.

Основа для:
wp_parse_slug_list()
1 раз – 0.000197 сек
(швидко) | 50000 разів – 6.03 сек
(швидко) |
PHP 7.0.2, WP 4.4.2

Хуки з функції

Повертає

Строку.

Використання

sanitize_title($title, $fallback_title, $context);
$title
(рядок) (обов’язковий)
Рядок, який потрібно очистити.
$fallback_title
(рядок)
Заголовок, який буде використаний, якщо не вказано $title.


За замовчуванням: ”
$context
(рядок)

Контекст у якому потрібно очищати назву, передану в $title. Значення передається у фільтр 'sanitize_title'.

При 'save'(за замовчуванням) рядок проходить через функцію remove_accents() .
За замовчуванням: ‘save’

Приклади

0

#1 Демонстрація роботи

Для створення частини УРЛу, що відповідає за ім’я посту, ВП використовує цю функцію:

$new_url = sanitize_title('Це довгий заголовок, який може бути біля посту або сторінки');
echo $new_url;

// Поверне:

// eto-dlinnyiy-zagolovok-kotoryii-mozhet-byit-u-posta-ili-stranitsyi
// якщо встановлений плагін транслітерації cry2lat або подібний

// %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
// якщо cry2lat не встановлено

Ще приклад:

echo sanitize_title( 'sanitize_title() - HTML та PHP tags are stripped.' );

// виведе:
// sanitize_title-html-and-php-tags-are-stripped
0

#2 Встановлення стандартного значення

echo sanitize_title('', 'по дефолту'); //> по дефолту

список змін

З версії 1.0.0Введено.

Код sanitize_title() WP 6.0.2

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

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

	/**
	 * Filters a sanitized title string.
	 *
	 * @ Since 1.2.0
	 *
	 * @param string $title Sanitized title.
	 * @param string $raw_title The title prior to sanitization.
	 * @param string $context Context for which the title is being sanitized.
	 */
	$title = apply_filters( 'sanitize_title', $title, $raw_title, $context);

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

	return $title;
}