sanitize_title_with_dashes

Definition:
function sanitize_title_with_dashes($title, $raw_title = '', $context = 'display') {}

Sanitizes title, replacing whitespace and a few other characters with dashes.
Limits the output to alphanumeric characters, underscore (_) and dash (-). Whitespace becomes a dash.

Parameters

  • string $title: The title to be sanitized.
  • string $raw_title: Optional. Not used.
  • string $context: Optional. The operation for which the string is sanitized.

Return values

returns:The sanitized title.

Source code

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);

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

	$title = str_replace('.', '-', $title);



	if ( 'save' == $context ) {

		// nbsp, ndash and mdash

		$title = str_replace( array( '%c2%a0', '%e2%80%93', '%e2%80%94' ), '-', $title );

		// iexcl and iquest

		$title = str_replace( array( '%c2%a1', '%c2%bf' ), '', $title );

		// angle quotes

		$title = str_replace( array( '%c2%ab', '%c2%bb', '%e2%80%b9', '%e2%80%ba' ), '', $title );

		// curly quotes

		$title = str_replace( array( '%e2%80%98', '%e2%80%99', '%e2%80%9c', '%e2%80%9d' ), '', $title );

		// copy, reg, deg, hellip and trade

		$title = str_replace( array( '%c2%a9', '%c2%ae', '%c2%b0', '%e2%80%a6', '%e2%84%a2' ), '', $title );

	}



	$title = preg_replace('/[^%a-z0-9 _-]/', '', $title);

	$title = preg_replace('/\s+/', '-', $title);

	$title = preg_replace('|-+|', '-', $title);

	$title = trim($title, '-');



	return $title;

}

2793

No comments yet... Be the first to leave a reply!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: