wptexturize()

wptexturize( string $text, bool $reset = false )

用格式化的实体替换普通的纯文本字符。
Replaces common plain text characters with formatted entities.

目录锚点:#说明#参数#源码

说明(Description)

Description返回给定文本,并将引号转换为智能引号、撇号、破折号、省略号、商标符号和乘法符号。举个例子,因为今天的努力值得明天的“假期”。。。变成:'因为今天的努力使它值得明天的“假日”…某些HTML块中的代码被跳过。不要在“init”操作钩子之前使用此函数;一切都将中断。


参数(Parameters)

参数类型说明
$text (string) 要格式化的文本。
$reset (bool) 对于单元测试,设置为true。转换后的图案将重置。

源码(Source)

/**
 * Replaces common plain text characters into formatted entities
 *
 * As an example,
 *
 *     'cause today's effort makes it worth tomorrow's "holiday" ...
 *
 * Becomes:
 *
 *     ’cause today’s effort makes it worth tomorrow’s “holiday” …
 *
 * Code within certain html blocks are skipped.
 *
 * Do not use this function before the 'init' action hook; everything will break.
 *
 * @since 0.71
 *
 * @global array $wp_cockneyreplace Array of formatted entities for certain common phrases
 * @global array $shortcode_tags
 * @staticvar array $static_characters
 * @staticvar array $static_replacements
 * @staticvar array $dynamic_characters
 * @staticvar array $dynamic_replacements
 * @staticvar array $default_no_texturize_tags
 * @staticvar array $default_no_texturize_shortcodes
 * @staticvar bool  $run_texturize
 *
 * @param string $text The text to be formatted
 * @param bool   $reset Set to true for unit testing. Translated patterns will reset.
 * @return string The string replaced with html entities
 */
function wptexturize( $text, $reset = false ) {
	global $wp_cockneyreplace, $shortcode_tags;
	static $static_characters = null,
		$static_replacements = null,
		$dynamic_characters = null,
		$dynamic_replacements = null,
		$default_no_texturize_tags = null,
		$default_no_texturize_shortcodes = null,
		$run_texturize = true,
		$apos = null,
		$prime = null,
		$double_prime = null,
		$opening_quote = null,
		$closing_quote = null,
		$opening_single_quote = null,
		$closing_single_quote = null,
		$open_q_flag = '',
		$open_sq_flag = '',
		$apos_flag = '';

	// If there's nothing to do, just stop.
	if ( empty( $text ) || false === $run_texturize ) {
		return $text;
	}

	// Set up static variables. Run once only.
	if ( $reset || ! isset( $static_characters ) ) {
		/**
		 * Filter whether to skip running wptexturize().
		 *
		 * Passing false to the filter will effectively short-circuit wptexturize().
		 * returning the original text passed to the function instead.
		 *
		 * The filter runs only once, the first time wptexturize() is called.
		 *
		 * @since 4.0.0
		 *
		 * @see wptexturize()
		 *
		 * @param bool $run_texturize Whether to short-circuit wptexturize().
		 */
		$run_texturize = apply_filters( 'run_wptexturize', $run_texturize );
		if ( false === $run_texturize ) {
			return $text;
		}

		/* translators: opening curly double quote */
		$opening_quote = _x( '“', 'opening curly double quote' );
		/* translators: closing curly double quote */
		$closing_quote = _x( '”', 'closing curly double quote' );

		/* translators: apostrophe, for example in 'cause or can't */
		$apos = _x( '’', 'apostrophe' );

		/* translators: prime, for example in 9' (nine feet) */
		$prime = _x( '′', 'prime' );
		/* translators: double prime, for example in 9" (nine inches) */
		$double_prime = _x( '″', 'double prime' );

		/* translators: opening curly single quote */
		$opening_single_quote = _x( '‘', 'opening curly single quote' );
		/* translators: closing curly single quote */
		$closing_single_quote = _x( '’', 'closing curly single quote' );

		/* translators: en dash */
		$en_dash = _x( '–', 'en dash' );
		/* translators: em dash */
		$em_dash = _x( '—', 'em dash' );

		$default_no_texturize_tags = array('pre', 'code', 'kbd', 'style', 'script', 'tt');
		$default_no_texturize_shortcodes = array('code');

		// if a plugin has provided an autocorrect array, use it
		if ( isset($wp_cockneyreplace) ) {
			$cockney = array_keys( $wp_cockneyreplace );
			$cockneyreplace = array_values( $wp_cockneyreplace );
		} else {
			/* translators: This is a comma-separated list of words that defy the syntax of quotations in normal use,
			 * for example...  'We do not have enough words yet' ... is a typical quoted phrase.  But when we write
			 * lines of code 'til we have enough of 'em, then we need to insert apostrophes instead of quotes.
			 */
			$cockney = explode( ',', _x( "'tain't,'twere,'twas,'tis,'twill,'til,'bout,'nuff,'round,'cause,'em",
				'Comma-separated list of words to texturize in your language' ) );

			$cockneyreplace = explode( ',', _x( '’tain’t,’twere,’twas,’tis,’twill,’til,’bout,’nuff,’round,’cause,’em',
				'Comma-separated list of replacement words in your language' ) );
		}

		$static_characters = array_merge( array( '...', '``', '''', ' (tm)' ), $cockney );
		$static_replacements = array_merge( array( '…', $opening_quote, $closing_quote, ' ™' ), $cockneyreplace );


		// Pattern-based replacements of characters.
		// Sort the remaining patterns into several arrays for performance tuning.
		$dynamic_characters = array( 'apos' => array(), 'quote' => array(), 'dash' => array() );
		$dynamic_replacements = array( 'apos' => array(), 'quote' => array(), 'dash' => array() );
		$dynamic = array();
		$spaces = wp_spaces_regexp();

		// '99' and '99" are ambiguous among other patterns; assume it's an abbreviated year at the end of a quotation.
		if ( "'" !== $apos || "'" !== $closing_single_quote ) {
			$dynamic[ '/'(dd)'(?=|[.,:;!?)}-]]|>|' . $spaces . ')/' ] = $apos_flag . '$1' . $closing_single_quote;
		}
		if ( "'" !== $apos || '"' !== $closing_quote ) {
			$dynamic[ '/'(dd)"(?=|[.,:;!?)}-]]|>|' . $spaces . ')/' ] = $apos_flag . '$1' . $closing_quote;
		}

		// '99 '99s '99's (apostrophe)  But never '9 or '99% or '999 or '99.0.
		if ( "'" !== $apos ) {
			$dynamic[ '/'(?=dd(?:|(?![%d]|[.,]d)))/' ] = $apos_flag;
		}

		// Quoted Numbers like '0.42'
		if ( "'" !== $opening_single_quote && "'" !== $closing_single_quote ) {
			$dynamic[ '/(?<=a|' .="" $spaces="" .="" ')'(d[.,d]*)'/'="" ]="$open_sq_flag" .="" '$1'="" .="" $closing_single_quote;="" }="" single="" quote="" at="" start,="" or="" preceded="" by="" (,="" {,=""><, [,="" ",="" -,="" or="" spaces.="" if="" (="" "'"="" !="=" $opening_single_quote="" )="" {="" $dynamic[=""><=a|[([{"-]|<|' .="" $spaces="" .="" ')'/'="" ]="$open_sq_flag;" }="" apostrophe="" in="" a="" word.="" no="" spaces,="" double="" apostrophes,="" or="" other="" punctuation.="" if="" (="" "'"="" !="=" $apos="" )="" {="" $dynamic[=""> is found.
		.     '-(?!->)' // Dash not followed by end of comment.
		.     '[^-]*+' // Consume non-dashes.
		. ')*+'         // Loop possessively.
		. '(?:-->)?';   // End of comment. If not found, match all input.

	$shortcode_regex =
		  '['              // Find start of shortcode.
		. '[\/[]?'         // Shortcodes may begin with [/ or [[
		. $tagregexp        // Only match registered shortcodes, because performance.
		. '(?:'
		.     '[^[]<>]+'  // Shortcodes do not contain other shortcodes. Quantifier critical.
		. '|'
		.     '<[^[]>]*>' // HTML elements permitted. Prevents matching ] before >.
		. ')*+'             // Possessive critical.
		. ']'              // Find end of shortcode.
		. ']?';            // Shortcodes may end with ]]

	$regex =
		  '/('                   // Capture the entire match.
		.     '<' find="" start="" of="" element.="" .="" '(?(?="!--)'" is="" this="" a="" comment?="" .="" $comment_regex="" find="" end="" of="" comment.="" .="" '|'="" .="" '[^="">]*>'       // Find end of element.
		.     ')'
		. '|'
		.     $shortcode_regex   // Find shortcodes.
		. ')/s';

	$textarr = preg_split( $regex, $text, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY );

	foreach ( $textarr as &$curl ) {
		// Only call _wptexturize_pushpop_element if $curl is a delimiter.
		$first = $curl[0];
		if ( '<' =="=" $first="" &&="">
更新版本 源码位置 使用 被使用
0.71 wp-includes/formatting.php 8 5

absint()

absint( mixed $maybeint )将值转换为非负整数,也就是取绝对值。Convert a value to non-negative integer.目录锚点:#参数#返回#源码#笔记参数(Parameters)参数类型必填说明$maybeint(mixed)必需要转换为非负整数的数据。返回(Return)(int)非负整数。源码(Source)function absint( $maybeint ) { return abs( intval( $maybeint ) );}/** *...

日期:2020-06-23 10:35:32 浏览:1337

activate_plugin()

activate_plugin( string $plugin, string $redirect = '', bool $network_wide = false, bool $silent = false )尝试激活插件,并在成功时重定向。Attempts activation of plugin in a “sandbox” and redirects on success.目录锚点:#说明#参数#返回#源码#笔记说明(Description)已激活的插件将不会再次尝试激活。其工作方式是在尝试包含插件...

日期:2020-06-23 10:39:26 浏览:1077

activate_plugins()

activate_plugins( string|string[]&nbsp;$plugins, string&nbsp;$redirect&nbsp;=&nbsp;'', bool&nbsp;$network_wide&nbsp;=&nbsp;false, bool&nbsp;$silent&nbsp;=&nbsp;false&nbsp;)激活多个插件。Activate multiple plugins.目录锚点:#说明#参数#返回#源码说明(Description)当WP_Error返回时,并不意...

日期:2020-09-08 17:28:27 浏览:1110

activate_sitewide_plugin()

activate_sitewide_plugin()不推荐用于激活仅网络插件的功能。Deprecated functionality for activating a network-only plugin.目录锚点:#说明#返回#源码说明(Description)另见激活插件()返回(Return)无返回值源码(Source)更新版本源码位置使用被使用3.0.0 wp-admin/includes/ms-deprecated.php:5701 function...

日期:2020-09-08 17:28:28 浏览:1992

addslashes_gpc()

addslashes_gpc( string&nbsp;$gpc&nbsp;)添加斜线以转义字符串。Adds slashes to escape strings.目录锚点:#说明#参数#返回#源码说明(Description)如果设置了magic_quotes_gpc,将首先删除斜线,请参见https://www.php.net/magic_quotes更多细节。参数(Parameters)参数类型必填说明 $gpc (string) ...

日期:2020-09-21 12:46:52 浏览:959

addslashes_strings_only()

addslashes_strings_only( mixed&nbsp;$value&nbsp;)仅当提供的值是字符串时才添加斜杠。Adds slashes only if the provided value is a string.目录锚点:#参数#返回#源码参数(Parameters)参数类型必填说明 $value (mixed) 必需 返回(Return)(mixe...

日期:2020-09-24 15:58:41 浏览:1343

add_action()

add_action( string&nbsp;$tag, callable&nbsp;$function_to_add, int&nbsp;$priority&nbsp;=&nbsp;10, int&nbsp;$accepted_args&nbsp;=&nbsp;1&nbsp;)将函数挂接到特定操作上。Hooks a function on to a specific action.目录锚点:#说明#参数#返回#源码#笔记说明(Description)Actions是WordPress核心在执行期间...

日期:2020-09-08 17:28:28 浏览:1209

add_blog_option()

add_blog_option( int&nbsp;$id, string&nbsp;$option, mixed&nbsp;$value&nbsp;)为给定的博客id添加新选项。Add a new option for a given blog id.目录锚点:#说明#参数#返回#源码#笔记说明(Description)不需要序列化值。如果需要序列化该值,则在将其插入数据库之前将对其进行序列化。请记住,资源不能序列化或作为选项添加。可以创建不带值的选项,然后稍后更新这些值。现有选项将不会更新,并执行检...

日期:2020-08-26 10:53:23 浏览:1024

add_clean_index()

add_clean_index( string&nbsp;$table, string&nbsp;$index&nbsp;)向指定表添加索引。Adds an index to a specified table.目录锚点:#参数#返回#源码#笔记参数(Parameters)参数类型必填说明 $table (string) 必需 数据库表名。 ...

日期:2020-09-08 17:28:29 浏览:1022

add_comments_page()

add_comments_page( string&nbsp;$page_title, string&nbsp;$menu_title, string&nbsp;$capability, string&nbsp;$menu_slug, callable&nbsp;$function&nbsp;=&nbsp;'', int&nbsp;$position&nbsp;=&nbsp;null&nbsp;)将子菜单页添加到“注释”主菜单。Add submenu page to the Comments ma...

日期:2020-08-24 11:14:39 浏览:1078