WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

sanitize_title_with_dashes() WP 1.2.1

Очищает заголовок, заменяя пробелы на (-).

На выходе возможны только: числа, буквы, знак подчеркивания (_), тире (-).

Хуков нет.

Возвращает

(строку) очищенный заголовок.

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

<?php sanitize_title_with_dashes( $title, $raw_title, $context ) ?>
$title(строка) (обязательный)
Заголовок, который нужно очистить.
По умолчанию: нет
$raw_title(строка) (обязательный)
Не используется.
По умолчанию: ''
$context(строка) (обязательный)
Если указать 'save', то будут удалены некоторые символы: nbsp, ndash, mdash, iexcl, iquest, angle quotes, curly quotes, copy, reg, deg, hellip, trade.
По умолчанию: 'display'

Примеры

#1. Демонстрация возможностей функции:

echo sanitize_title_with_dashes("I'm in LOVE with WordPress!!!1 рус");
// вернет: im-in-love-with-wordpress1-%d1%80%d1%83%d1%81

Список изменений

С версии 1.2.0 Введена.

Код sanitize title with dashes: wp-includes/formatting.php WP 5.2.3

<?php
function sanitize_title_with_dashes( $title, $raw_title = '', $context = 'display' ) {
	$title = strip_tags( $title );
	// Preserve escaped octets.
	$title = preg_replace( '|%([a-fA-F0-9][a-fA-F0-9])|', '---$1---', $title );
	// Remove percent signs that are not part of an octet.
	$title = str_replace( '%', '', $title );
	// Restore octets.
	$title = preg_replace( '|---([a-fA-F0-9][a-fA-F0-9])---|', '%$1', $title );

	if ( seems_utf8( $title ) ) {
		if ( function_exists( 'mb_strtolower' ) ) {
			$title = mb_strtolower( $title, 'UTF-8' );
		}
		$title = utf8_uri_encode( $title, 200 );
	}

	$title = strtolower( $title );

	if ( 'save' == $context ) {
		// Convert nbsp, ndash and mdash to hyphens
		$title = str_replace( array( '%c2%a0', '%e2%80%93', '%e2%80%94' ), '-', $title );
		// Convert nbsp, ndash and mdash HTML entities to hyphens
		$title = str_replace( array( '&nbsp;', '&#160;', '&ndash;', '&#8211;', '&mdash;', '&#8212;' ), '-', $title );
		// Convert forward slash to hyphen
		$title = str_replace( '/', '-', $title );

		// Strip these characters entirely
		$title = str_replace(
			array(
				// soft hyphens
				'%c2%ad',
				// iexcl and iquest
				'%c2%a1',
				'%c2%bf',
				// angle quotes
				'%c2%ab',
				'%c2%bb',
				'%e2%80%b9',
				'%e2%80%ba',
				// curly quotes
				'%e2%80%98',
				'%e2%80%99',
				'%e2%80%9c',
				'%e2%80%9d',
				'%e2%80%9a',
				'%e2%80%9b',
				'%e2%80%9e',
				'%e2%80%9f',
				// copy, reg, deg, hellip and trade
				'%c2%a9',
				'%c2%ae',
				'%c2%b0',
				'%e2%80%a6',
				'%e2%84%a2',
				// acute accents
				'%c2%b4',
				'%cb%8a',
				'%cc%81',
				'%cd%81',
				// grave accent, macron, caron
				'%cc%80',
				'%cc%84',
				'%cc%8c',
			),
			'',
			$title
		);

		// Convert times to x
		$title = str_replace( '%c3%97', 'x', $title );
	}

	$title = preg_replace( '/&.+?;/', '', $title ); // kill entities
	$title = str_replace( '.', '-', $title );

	$title = preg_replace( '/[^%a-z0-9 _-]/', '', $title );
	$title = preg_replace( '/\s+/', '-', $title );
	$title = preg_replace( '|-+|', '-', $title );
	$title = trim( $title, '-' );

	return $title;
}

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

Из метки: sanitize_ (очистка)

Еще из раздела: Очистка данных

Комментариев нет
    Здравствуйте, !     Войти . Зарегистрироваться